如何在android marshmallow上实现app链接?

时间:2015-10-01 17:15:50

标签: android android-6.0-marshmallow applinks

Android 6.0中正在更改应用链接,因此Android可以更好地了解哪些应用可以直接打开内容,而不是每次都使用对话框停止用户。

我该如何实施?

1 个答案:

答案 0 :(得分:6)

好的是,App Links是Android Marshmallow 6.0 的新功能和酷炫功能。它允许以一种方式打开您拥有的域名的网站链接。

applinks需要满足两个条件:

  1. 为网址添加<intent-filter>
  2. 验证域名的所有权
  3. 确保您至少有1个带有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类别名称。

      

    不要忘记添加android:autoVerify="true"属性   <intent-filter>这将告诉系统启动域   应用程序在设备上安装时验证。

    现在,要将您的网站与您的应用相关联,您需要在您的网站上添加数字资产链接JSON文件。您网站根目录下的路径完全相同

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

    以下示例assetlinks.json文件授予链接打开权限   到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": 保持原样。

      

    确保您创建的文件可通过HTTPS protocal

    访问

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

    中的说明进行测试