一键跳转功能介绍:通过 URL Scheme 、Deep Link(Android 6.0深度链接) 、Universal Links(IOS9.0通用链接) 实现在不同浏览器中拉起目标APP特定页面
Android 和 iOS其实是鼓励各个应用之间进行交互和集成,提高用户体验,为了就解决基础调用方式的复杂性。2015年,Android 和iOS依次推出了方便开发者得App Links技术,谷歌叫做App Links(Android 6.0),苹果叫做Universal Links(iOS9.0),基本想法就是把打开应用的地址,统一为使用HTTP(S)方式,系统通过拦截和解析HOST地址,与系统注册的HOST进行匹配,如果发现就可以直接打开APP。
image.png
AppLinks是一个特殊的DeepLink,它可以让你的应用和你的网站URL进行绑定,这样当你在点击你网站链接的时候(非浏览器中)就能调起你的App,而不是出现选择界面。 Deeplink是一个intent过滤器,他可以使用户直接进入某个Activity页面。但是有个不好的是当匹配到多个intent时就会弹一个让用户选择的框。官方给了下面一张图,而AppLinks就不会有这个弹框:
image.png
具体实现 Applink实现参考 Applink实现参考2 deeplink实现参考 Universal Links实现参考
image.png
1.在manifest中开启autoVerify
<activity >
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" android:host="www.example.com" />
<data android:scheme="https" />
</intent-filter>
</activity>
注意:开启autoVerify的activity中的<intent-filter..>的action必须为android.intent.action.VIEW,
category必须包含android.intent.category.BROWSABLE,data的scheme必须包含http/https,否则不生效,
而且AppLinks必须在Android 6.0 以上的手机才可生效。
2.在网站上创建assetlinks.json文件 具体格式如下:
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.example",
"sha256_cert_fingerprints":
["14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5"]
}
}]
package_name就是应用的包名,sha256_cert_fingerprints为正式版的签名;然后将assetlinks.json文件放在网站的.well-known目录下
3.通过https://domain.name/.well-known/assetlinks.json测试是否可用