关于集成,看官网的写法就行了,集成并不麻烦:
创建Firebase Dynamic Links:
https://firebase.google.com/docs/dynamic-links/android/create
接收Firebase Dynamic Links:
https://firebase.google.com/docs/dynamic-links/android/receive
简单来说只有两个概念:动态链接(Dynamic Links)和深链接(Deep Link),点击了动态链接以后,不管是调起APP还是在电脑上的浏览器打开,都会把动态链接中的深链接传递过去。下面着重记录一些重点的,容易陷入耗时状态的注意事项:
1.在注册您的应用时,请指定 SHA-1 签名密钥。如果您使用应用链接,还需要指定 SHA-256 密钥。在AndroidStudio获取的终端命令是: keytool -list -v -keystore ~/.android/debug.keystore。在控制台上,下面截图的两项不应该有空缺。
2. 检查手机客户端的网络是否是全局代理
3. project的build.gradle里面要配置两处maven代码仓库:
4. deep link必须是一个合法的网址格式 “https.www.XXX.com”类似这样的
5. 关于Page Not Found:
如果粘贴动态链接到浏览器中总是出这个提示,那么有3种可能的原因:
-- 指纹缺失
检查SHA-1和SHA-256 签名密钥是否都在控制台上部署了
-- 说明贴的url不正确
//好使
https://i-fenrirdaliandev.ra9.app/links/?apn=com.fenrirdalian.app.ra9.dev&link=https://www.baidu.com/
//不好使
https://i-fenrirdaliandev.ra9.app/links?apn=com.fenrirdalian.app.ra9.dev&link=https://www.baidu.com/
//好使
https://dynamictry.page.link?apn=com.google.firebase.quickstart.deeplinks&link=https://www.baidu.com/
重点检查”/“和 "?"的位置,比如下面的两个动态长链接,deep link都是百度官网,但是注意"/?"的细节,明显能看到links /link的动态链接是不一样的,link系列的link后面直接跟着问号,links系列的则相反。如果是因为这样的细节导致的 Page Not Found,先手动在浏览器上改url看看no page found的输入框提示是否会消失。
6. adb的方式进行测试:
官方给的通过ADB测试网址:
adb shell am start -a android.intent.action.VIEW -d "{URL}" {package name}
但是其实加了包名反而不好用,不加包名反而是好使的,比如下面的样子,就能打开浏览器然后启动APP:
./adb shell am start -a android.intent.action.VIEW -d "https://i-fenrirdaliandev.ra9.app/links/juhCGTx2yNg7rjfJ6"
ps:上面./adb的写法是因为没配adb,参考https://blog.csdn.net/Crystal_xing/article/details/102892394,这里面记录了很方便的使用./adb
7. 关于谷歌浏览器搜索栏上粘贴link之后,动态链接第一次启动APP会打开商店的问题:
一: 首先,先用上面第6列举的adb方式进行测试,不用手动操作,二是用adb的方式打开浏览器,看看是否仍然是第一次不断打开商店,如果变正常了,那么说明是机型的问题。
二:不用真机,而是用模拟器的方式去测试,如果变正常了,那么也证明是机型的问题,和代码无关
三:基本上粘贴到浏览器后面接一个空格以后再enter,百分百能调起APP,参考https://blog.csdn.net/Crystal_xing/article/details/104699543