Android applink 踩坑指南
Android applink 踩坑指南
原理
与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
Android applink 踩坑指南的更多相关文章
- [置顶]
xamarin android toolbar(踩坑完全入门详解)
网上关于toolbar的教程有很多,很多新手,在使用toolbar的时候踩坑实在太多了,不好好总结一下,实在浪费.如果你想学习toolbar,你肯定会去去搜索androd toolbar,既然你能看到 ...
- Spring WebSocket踩坑指南
Spring WebSocket踩坑指南 本次公司项目中需要在后台与安卓App间建立一个长连接,这里采用了Spring的WebSocket,协议为Stomp. 关于Stomp协议这里就不多介绍了,网上 ...
- C# -- HttpWebRequest 和 HttpWebResponse 的使用 C#编写扫雷游戏 使用IIS调试ASP.NET网站程序 WCF入门教程 ASP.Net Core开发(踩坑)指南 ASP.Net Core Razor+AdminLTE 小试牛刀 webservice创建、部署和调用 .net接收post请求并把数据转为字典格式
C# -- HttpWebRequest 和 HttpWebResponse 的使用 C# -- HttpWebRequest 和 HttpWebResponse 的使用 结合使用HttpWebReq ...
- Unity Android交互过坑指南
Unity Android交互过坑指南 介于网上看过很多unity和Android交互的教程,都或多或少的漏掉了一些部分,导致编译过程中出现各种问题,特此整理一份教程,仅供参考 介绍 本次实现的是在游 ...
- 树莓派4B踩坑指南 - (15)搭建在线python IDE
今天想在树莓派上自己搭一个在线的python IDE,于是找到了一篇教程--Fred913大神的从头开始制作OJ-在线IDE的搭建 自己尝试动手做了一下, 还是发现不少细节需要注意, 记录在此 如果不 ...
- 正则表达式 test 踩坑指南
正则表达式 test 踩坑指南 test 只能使用一次,第二次返回的是错误结果! reg = /edg|edge/g; /edg|edge/g reg.test(`edg`) true reg.tes ...
- Taro 开发踩坑指南 (小程序,H5, RN)
Taro 开发踩坑指南 (小程序,H5, RN) css taro 如何展示多行文本省略号 https://www.cnblogs.com/xgqfrms/p/12569057.html UI 设计稿 ...
- 小程序 & taro 踩坑指南
小程序 & taro 踩坑指南 微信开发者工具, 不支持 react bug https://github.com/NervJS/taro/issues/5042 solution just ...
- Nuxt.js的踩坑指南(常见问题汇总)
本文会不定期更新在nuxt.js中遇到的问题进行汇总.转发请注明出处,尊重作者,谢谢! 强烈推荐作者文档版踩坑指南,点击跳转踩坑指南 在Nuxt的官方文档中,中文文档和英文文档都存在着不小的差异. 1 ...
随机推荐
- 华为交换机GVRP基础配置
GVRP基础配置 int G0/0/1 port link-type trunk 配置接口类型为trunk port trunk allow-pass vlan all 允许所有VLAN通过 int ...
- MasaFramework -- 缓存入门与规则配置
概念 什么是缓存,在项目中,为了提高数据的读取速度,我们会对不经常变更但访问频繁的数据做缓存处理,我们常用的缓存有: 本地缓存 内存缓存:IMemoryCache 分布式缓存 Redis: Stack ...
- golang单元测试一(简单函数测试)
0.1.索引 https://blog.waterflow.link/articles/1663688140724 1.简介 单元测试是测试代码.组件和模块的单元函数.单元测试的目的是清除代码中的错误 ...
- 基于Camera Link和PCIe DMA的多通道视频采集和显示系统
基于Camera Link和PCIe DMA的多通道视频采集和显示系统 在主机端PCIe驱动的控制和调度下,视频采集与显示系统可以同时完成对多个Camera Link接口视频采集以及Camera Li ...
- Optional用法与争议点
原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处. 简介 要说Java中什么异常最容易出现,我想NullPointerException一定当仁不让,为了解决这种null值 ...
- Pytest学习
pytest简介 pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高. 使用介绍 编写规则 测试函数以t ...
- LoadRunner11脚本小技能之添加请求头+定义变量+响应内容乱码转换打印+事务拆分
一.添加请求头 存在一些接口,发送请求时需要进行权限验证.登录验证(不加请求头时运行脚本,接口可能会报401等等),所以需要在脚本中给对应请求添加请求头.注意:请求头需在请求前添加,包含url类.su ...
- JetBrains新产品Aqua——自动化测试开发工具(抢鲜体验)
转载请注明出处️ 作者:测试蔡坨坨 原文链接:caituotuo.top/9a093c88.html 你好,我是测试蔡坨坨. 随着行业内卷越来越严重,自动化测试已成为测试工程师的必备技能,谈及自动化测 ...
- 镜像制作工具diskimage-builder介绍
简介 diskimage-builder(简称dib)是一款用于构建系统镜像的工具,它被设计用于OpenStack的TripleO项目,支持qocw2.vhd.raw等主流镜像格式. 在众多系统镜像构 ...
- 2022春每日一题:Day 8
题目:[HNOI2003]激光炸弹 二维前缀和,扫大小为m*m的矩形,取最大即可. 代码: #include <cstdio> #include <cstdlib> #incl ...