Android URI方案与App Links

时间:2017-07-18 14:10:26

标签: android deep-linking applinks

Android App Links仅适用于Android 6.0,与Android 4.2的Deep Links不同,但行为和编码有何不同?

我阅读了文档,但没有看到差异。

深层链接:https://developer.android.com/training/app-indexing/deep-linking.html

应用链接:https://developer.android.com/training/app-links/index.html

1 个答案:

答案 0 :(得分:14)

URI方案深度链接(Android 4.2)

标准URI方案深层链接(Android 4.2)允许开发人员为URI方案注册应用程序,即pinterest://当用户点击此链接并安装应用程序时,应用程序将打开。如果未安装该应用程序,则会产生“找不到页面”错误。

通过注册应用程序以通过清单中的intent过滤器来响应给定的URI。

<intent-filter>
    <data android:scheme="your_uri_scheme" />
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
</intent-filter>

然后,您将通过从给定活动中获取意图字符串来处理链接。

Uri data = this.getIntent().getData();
if (data != null && data.isHierarchical()) {
    String uri = this.getIntent().getDataString();
    Log.i("MyApp", "Deep link clicked " + uri);
}

注意:如果用户来自Chrome,您需要包含单独处理。如果未安装该应用,则Chrome不会引发错误,它会将您带到Play商店或(可选)为您提供后备网址

应用链接(Android 6.0)

引入了App链接以复制iOS Universal Links的功能。应用链接是将网站链接转换为应用链接的简单方法。因此,如果单击正常的HTTP / HTTPS链接并安装相应的应用程序,它将立即打开。如果未安装该应用,则会提供后备网络链接。

<强>要求

  • 您必须拥有一个功能性网站
  • 用户必须使用Android 6.0

<强>配置

对于App Links,您的清单看起来会略有不同。

<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="yoursite.com" />
    <data android:scheme="https" android:host="yoursite.com" />
</intent-filter>

然后,您必须注册您的网站以处理App Links。您需要创建assetlinks.json文件并将其托管在您的网站yoursite.com/.well-known/assetlinks.com

<强> /。众所周知/ assetlinks.com

[{
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target": {
         "namespace": "android_app",
         "package_name": "io.branch.branchster",
         "sha256_cert_fingerprints": 
        ["14:6D:E9:..."]
    }
}]

延迟深层链接

不幸的是,这些方法都不支持延迟深度链接,这是在应用尚未安装时深层链接到应用内部内容的功能。这是加入新用户的重要用户体验,因此我建议使用第三方,例如Branch(我为分支机构工作的完全披露)或Firebase。他们将处理所有功能和边缘情况,以及包括其他功能,如深度视图和应用横幅,如果这是你感兴趣的东西。