irpas技术客

Android applink 踩坑指南_2235854410_applink

irpas 6382

Android applink 踩坑指南 原理接入步骤将链接与activity关联起来加入meta data生成身份验证JSON真机测试结论官方文档

原理

与url scheme不同的地方在于协议必须是http或者https(但是经测试http无效),不能随便自定义协议头。

首先通过Android studio的工具帮助我们生成一个验证安装的app的信息的json文件(或者自己写也可以),里面主要包括app签名等可以用于验证身份的信息,放在https服务器上,首次安装app的时候会自动向服务器请求该json文件,验证目前安装的app是否正确未被第三方篡改。验证成功后会把app加入到链接处理政策列表中,当点击该链接时会自动选择使用app打开,不会弹选项框让用户选择是通过浏览器还是app打开该链接。

接入步骤

Android studio为我们提供了工具可以使applink的接入变得简单 总有4个步骤

将链接与activity关联起来

可以在pathvalues那里填需要从链接传过来的参数,url需要和你的https服务器url一致,不能像url scheme一样随便填。 activity就是你跳转过来之后要展示的页面。 其实就是帮我们在manifest.xml里面加了一个intent-filter:

加入meta data

在Androidmanifest.xml里的application里加入

<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />

然后在strings.xml里加入

<string name="asset_statements" translatable="false"> [{ "include": "https://你的服务器域名/.well-known/assetlinks.json" }] </string> 生成身份验证JSON

site domain要与上一个步骤里填的url一致,这个服务器是用来存放下面生成的JSON的。 选择一个签名文件,点击generate digital asset links file,生成用以验证身份的json,生成的JSON里最下面那一行就是签名文件的SHA。 官方这个步骤和描述很有误导性,其实不是把JSON文件放到服务器上,而是要以接口的形式返回JSON的内容,返回报文格式必须是application/json 点击下面的link and verify 可以验证是否能正确访问服务器的JSON

真机测试

经测试applink assistant的test app links 不好用,它只能以debug包进行测试,而且每次测试都失败。 打包一个release包(签名文件要与生成JSON用的一样),安装之后需要等待一段时间用以身份验证,Google官方说20s,经测试不止,华为需要几分钟,小米甚至需要十几分钟。验证成功后在手机本地(如备忘录)里点击url即可跳转到app,且不会弹框让用户选择使用浏览器还是app来打开这个链接。 可以这个命令来查看你的url是否加入到了链接处理策略列表里

adb shell dumpsys package domain-preferred-apps

这个status:always就是成功了,ask是没成功,需要询问。

结论

不好用,华为可以正常使用,本地点链接就直接打开app,但是小米6X不稳定,也是没有弹框,但是有时候打开了浏览器有时候打开了app。并且只能点本地链接(如备忘录、短信),在html里使用windo.herf.location = “链接” 来跳转,在浏览器里可以成功,微信里还是会被拦截

官方文档

[1]https://developer.android.com/studio/write/app-link-indexing.html [2]https://developer.android.com/training/app-links/verify-site-associations#web-assoc


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #applink #Android #首先通过Android