动态链接简介
生成一个根据不同的场景响应不同行为的链接。比如:你想要为app添加一个房间内邀请好友的功能,如果好友也安装了此app,点击分享链接就进入此房间,如果好友没有安装此app,那就跳转到Google Play下载页面(或者你自定义的任何页面),如果好友没有安装此app,而且他是苹果手机,那就跳转到苹果商店的应用下载页面。这个功能就可以使用Firebase的动态链接实现。
注:由于Firebase需要翻墙使用,请自备梯子,否则无法使用动态链接。
生成动态链接最简单的方式就是使用Firebase控制台生成,在设置动态链接之前要先给项目添加SHA1和SHA256指纹信息:
SHA1和SHA256可以通过命令行获取:
Mac环境:
keytool -exportcert -list -v \ -alias androiddebugkey -keystore ~/.android/debug.keystore
Windows环境:
keytool -exportcert -list -v \ -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore
输入命令行后需要输入密钥库口令,默认的密钥库口令是android
获取正式签名证书SHA1和SHA256的命令行:
keytool -exportcert -list -v \
-alias <your-key-name> -keystore <path-to-production-keystore>
在<your-key-name>填入密钥名,<path-to-production-keystore>填入密钥路径,然后输入密钥库口令即可获取SHA1和SHA256。
设置动态链接
添加SHA1和SHA256完成后,打开Firebase的动态链接模块:
在Firebase控制台的Dynamic Links模块,点击新建动态链接,到达以下界面:
1.设置短链接地址,这就是后面生成的短动态链接,使用默认的就可以,点击下一步
2.设置深层链接,在电脑上打开会跳转到这个网址,一般填此app的Google Play链接。笔者随意填的一个网址用于测试:https://wkxjc.github.io/peppa_pig.jpg,名称随便填,点击下一步
3.针对iOS定义链接行为:在苹果机上打开会跳转的链接地址,可以选择打开第2步中定义的深层链接地址,也可以定义在iOS应用中打开深层链接,如果选择在iOS应用中打开链接,那么就要选择一个此项目中的iOS应用。然后会细分成:用户安装了此应用时,跳转的链接地址,和用户没有安装此应用时,跳转的链接地址。由于本项目中没有iOS应用,就选择在浏览器中打开第2步中的链接地址,点击下一步。
4.设置Android设备跳转的链接。和iOS链接行为类似,可以选择跳转到第2步中的链接地址,也可以选择在Android应用中打开深层链接。如果用户没有安装此应用,则跳转到应用的Google Play地址或者自定义网址。高级设置中还可以设置如果应用低于某版本,则打开Google Play引导用户更新。一般选择应用的Google Play页面即可。但是本例中的应用未在Google Play中上架,所以打开Google Play会查找不到应用,那么笔者将其跳转到自定义网址:Firebase官方Demo页面:https://github.com/firebase/quickstart-android。高级设置根据自己的需要勾选,本例中不勾选,点击下一步。
5.广告系列跟踪暂时没用上,直接不填,点击创建。
创建完成后可以在链接详情中查看链接:
短动态链接和长动态链接只有长短的区别。点击两个链接都可以实现我们设置的跳转。
可以看到,本例中的短动态链接地址是:https://studyfirebasedynamiclinks.page.link/FDgu
我们测试一下,在电脑上打开:
可以看到,确实打开了我们设置的深层链接地址。在ios上打开也会跳转到此深层链接,故不再演示。在Android设备上打开:
可以看到,跳转到了Firebase官方Demo的地址。
注:由于Firebase需要翻墙使用,请自备梯子,否则无法跳转。