Deep Link 不适用于 Android

Deep Link does not work on Android

我正在按照 Android 开发人员文档中的 Create Deep Links to App Content 创建 Link 到 Android 应用程序中的 Activity。

新的应用程序项目,我指定的 activity 与该教程中的完全一样:

<activity
android:name="com.example.android.GizmosActivity"
android:label="@string/title_gizmos" >
<intent-filter android:label="@string/filter_view_http_gizmos">
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <!-- Accepts URIs that begin with "http://www.example.com/gizmos” -->
    <data android:scheme="http"
          android:host="www.example.com"
          android:pathPrefix="/gizmos" />
    <!-- note that the leading "/" is required for pathPrefix-->
</intent-filter>
<intent-filter android:label="@string/filter_view_example_gizmos">
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <!-- Accepts URIs that begin with "example://gizmos” -->
    <data android:scheme="example"
          android:host="gizmos" />
</intent-filter>
</activity>

当我用 adb shell am start -W -a android.intent.action.VIEW -d "example://gizmos" com.example.android 测试时,它有效。 phone 上的 OS 启动应用程序。

但是当我通过导航 chrome 到 example://gizmos 进行测试时,应用程序没有启动,chrome 只是 google 搜索该 URI。为什么它不起作用?

(我正在为 Nexus 5X API 26 使用 Android 模拟器)。

这是由于 Chrome 没有关注深度 link 如果您手动将其输入地址栏。有关详细信息,请参阅此

测试深度 linking 的最简单方法是将 link 输入 Android 消息应用程序。发送消息后,您可以单击 link。

您还可以在某个地方托管一个页面,您的深度 link。