Google App Link 技术实现(亲证篇)

App Link简介

App Link是google 在 Android 6.0系统以上实现的一种技术(深度链接技术),具体是用户可以通过点击web链接,达到打开指定app(已安装)或网页(未安装app的情况),可以大幅提升用户体验,同时降低服务器h5页面需对手机是否已安装app进行逻辑判断的操作。

App Link工作原理:

app在安装的时候,验证一个服务器地址(例如http://m.fengjr.com),成功验证通过后,当用户点击于类似http://m.fengjr.com/about的web链接,即可打开app本地相关页面(如app未安装,打开相关网页).

AppLink实现步骤:

1.app代码相关配置

app AndroidManifest.xml中增加相关配置:


           
               

               
               


               
               
               
           

其中关键的两处,"android:autoVerity="true"指定该组件需要在程序安装时,进行深度链接验证;"android:host="m.fengjr.com"指定要验证的服务器地址。

2.assetlinks.json文件制作

在服务器http://m.fengjr.com/根目录下新建.well-known目录,并上传一个assetlinks.json(有的文章此处指定文件名为statments.json,经验证,为错误命名,正确名称应为assetlinks.json),文件内容格式类似:

[{
 "relation": ["delegate_permission/common.handle_all_urls"],
 "target": {
   "namespace": "android_app",
   "package_name": "com.fengjr.mobile",//替换成自己应用的包名
   "sha256_cert_fingerprints": ["**:**::**::**::**::**::**::**::BB:69:56:A6:DB:FE:1C:38:16:D3:3D:01:BD:AC:8F:8C:86:26:CD:**::**::**::**::**:"]//根据app的keystore文件生成的sha256签名
 }
}]

附assetlinks.json文件生成方法:
终端执行如下命令,并输入密钥库口令

keytool -list -v -keystore /path/to/app/release-key.keystore
输入密钥库口令: 

拷贝SHA256算法得到的证书签名内容,替换上述assetlinks.json中相关内容.然后将准备好的assetlinks.json文件上传到服务器http://m.fengjr.com/.well-known目录下

3.查看App Link验证是否生效

  • 打开浏览器访问http://m.fengjr.com/.well-known/assetlinks.json,正常应该看到该文件内容输出。
  • 本地编译app,然后将apk安装到手机,然后通过如下命令查看是否app验证生效
adb shell dumpsys package d

得到如下输出:

 Package: com.alibaba.android.arouter.demo
  Domains: m.aliyun.com
  Status:  ask

  Package: com.ss.android.article.news
  Domains: m.toutiao.com toutiao.com www.toutiao.com open.toutiao.com d.toutiao.com
  Status:  ask

  Package: com.fengjr.mobile
  Domains: m.fengjr.com
  Status:  always : 200000004

其中status状态解释:

  • undefined — app没有在manifest中启用链接自动验证功能。
  • ask — app验证失败(会通过打开方式对话框询问用户)
  • always — app通过了验证(点击这个域名总是打开这个app)
  • never — app通过了验证,但是系统设置关闭了此功能。

也可通过访问google api,查看app是否通过App Links验证(需翻墙)

https://digitalassetlinks.googleapis.com/v1/statements:list?
   source.web.site=https://m.fengjr.com(将该网址替换为自己的验证服务器域名)
   relation=delegate_permission/common.handle_all_urls

如验证通过,会得到如下结果:


Google App Link 技术实现(亲证篇)_第1张图片
delmt.png

4.验证App Link

新建一个测试网页,文字链接配置为(http://m.fengjr.com/about/),然后点击文字,即可打开本地app,

效果图:


1514193223.gif

你可能感兴趣的:(Google App Link 技术实现(亲证篇))