栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android applink 踩坑指南

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android applink 踩坑指南

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里加入


然后在strings.xml里加入



        [{

        "include": "https://你的服务器域名/.well-known/assetlinks.json"

        }]

    
生成身份验证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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/328210.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号