Android Firebase Dynamic Links 动态链接使用心得

本文介绍了Android中Firebase Dynamic Links的集成及使用,包括动态链接的创建和接收,强调了配置过程中的注意事项,如SHA签名密钥、合法网址格式、深链接的正确构造,以及解决Page Not Found、启动APP问题的策略。还提供了ADB测试动态链接的方法和应对不同设备行为的技巧。

关于集成,看官网的写法就行了,集成并不麻烦:

创建Firebase Dynamic Links:

https://firebase.google.com/docs/dynamic-links/android/create

接收Firebase Dynamic Links:

https://firebase.google.com/docs/dynamic-links/android/receive

 

 

动态链接可以在控制台上建立,也可以代码创建,2种途径。

配置之后的效果如下:在控制台上配置一个动态链接https://demox.page.link/w13Z,在手机浏览器上输入这个动态链接后,开启手机浏览器并且跳转到百度网页

实际开发的时候,基本都是代码创建动态链接,然后吊起应用,拿到deep Link后根据内容做相关的处理。

 

控制台上动态链接的网页,蓝字部分的https://demox.page.link,叫做动态链接前缀。深链接不可见,动态链接里隐藏着深链接,在代码的监听回调里才能取得deepLink(深链接)。深链接必须是合法网址形势,参考;https://support.google.com/firebase/answer/9021429

简单来说只有两个概念:动态链接(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-xxx.xx.app/links/?apn=com.xx.app.xx.dev&link=https://www.baidu.com/

//不好使
https://i-xxx.xx.app/links?apn=com.xxx.xx.rax.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-xxx.xx.app/links/juhCGTx2yNg7rjfJ6"  

ps:上面./adb的写法是因为没配adb,参考https://blog.youkuaiyun.com/Crystal_xing/article/details/102892394,这里面记录了很方便的使用./adb 

 

 

7. 关于谷歌浏览器搜索栏上粘贴link之后,动态链接第一次启动APP会打开商店的问题:

     一: 首先,先用上面第6列举的adb方式进行测试,不用手动操作,二是用adb的方式打开浏览器,看看是否仍然是第一次不断打开商店,如果变正常了,那么说明是机型的问题。

     二:不用真机,而是用模拟器的方式去测试,如果变正常了,那么也证明是机型的问题,和代码无关

     三:基本上粘贴到浏览器后面接一个空格以后再enter,百分百能调起APP,参考https://blog.youkuaiyun.com/Crystal_xing/article/details/104699543

 

 

8.  关于总是启动外部浏览器的问题

  如果浏览器打开动态链接的时候,总是开启一个新的外部浏览器而不能调起APP,那么google-services.json文件的package name多半和控制台app里的包名是不一致的,所以调用不起来

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值