如何在 android marshmallow 上实现应用链接?

How to implement app links on android marshmallow?

应用程序链接在 Android 6.0 中进行了更改,以便 Android 更清楚哪些应用程序可以直接打开内容,而不是每次都使用对话框阻止用户。

如何实施?

嗯,是的,App Links 是 Android Marshmallow 6.0 上的新功能和很酷的功能。这让您可以更轻松地打开您拥有的域的网站链接。

应用链接需要满足两个条件:

  1. 为网址添加 <intent-filter>
  2. 验证域的所有权

确保您至少有 1 个 activity 带有 intent 过滤器。

<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.domain.com"/>
        <data android:scheme="https" android:host="www.domain.com" />
    </intent-filter>
</activity>
应用程序链接的

意图过滤器 必须声明 android:scheme 值为 httphttps 或两者。过滤器不得声明任何其他方案。过滤器还必须包含 android.intent.action.VIEWandroid.intent.category.BROWSABLE 类别名称。

Don't forget to add android:autoVerify="true" attribute on <intent-filter> This will tell the system to start the domain verification while the app install on the device.

现在要将您的网站与您的应用相关联,您需要在您的网站上添加 数字资产 Link JSON 文件。和你网站根目录下的路径一模一样

https://www.domain.com/.well-known/assetlinks.json

The following example assetlinks.json file grants link-opening rights to a com.example Android app:

这是 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": 让其他人保持原样。

Make sure the file you create is accessible over HTTPS protocal

现在您可以测试该应用程序,您可以按照 android developer documentation 博客

中的说明进行测试