协议跳转
当我们在应用中点击一个协议链接,通常会提示我们选择合适的浏览器或者app去打开它。
|
|
如上,定义后 , 安卓上打开web链接: http://www.stone86.top/magic 可以匹配到 该 MainActivity
scheme可以随意设置。访问形式还是跟上面类似的: scheme://host/pathPatteren
只是在6.0以后多了一个默认处理。
使app作为给定链接的默认处理者
要想实现Android 6.0 中的”让app作为对给定类型链接的默认处理者”。要再增加如下配置:
|
|
android:autoVerify="true"
自动会访问该站点进行验证。为了自动验证,向阿里云申请了一天的https+cdn来测试,实际访问的是:https://www.stone86.top/.well-known/assetlinks.json。 该验证服务必须是https的站点;实际测试时,明明站点的json是可以访问的,但验证还是没通过,猜想,可能是国内服务器的问题
文件夹名必须是.well-known
,文件名为assetlinks.json
,内容是:
|
|
可以使用java的keytool命令来获取fingerprints:$ keytool -list -v -keystore my-release-key.keystore。
当app运行,验证通过后;再打开该链接,就会查找到系统中,已配置了其对应的app,就不会弹出其它可接受网页category的应用选择框了;会直接打开app。
使用命令验证绑定情况
|
|
当不含后面的package值时,还是会弹出多app选择框。因为验证可能失败了。
测试网站与url的绑定命令:
|
|
输出:
|
|
代码中应用
- 用intent,匹配协议,打开App:
|
|
- activity中,解析:
|
|
- webview跳转App:
|
|
Android Studio 3.0中操作App Links
AS3.0 , 菜单栏 Tools > App Links Assistant 可以快速操作 App Links