Android 深 link 无效

Android deep link not working

我想让我的应用程序使用深层链接。对于初学者,我希望我的应用程序在我输入 www.example.com/gizmos 时显示在选择器对话框中 为此,根据我的理解,我只需要修改 AndroidManifest.xml

我的AndroidManifest.xml

...
<activity
        android:screenOrientation="portrait"
        android:name=".activity.Landing"
        android:label="@string/title_activity_maps" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

        <!-- FOR DEEP LINKS-->
        <intent-filter>
            <data android:scheme="example"
                android:host="gizmos" />
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
        </intent-filter>
</activity>

现在,当我在记事本、浏览器等中输入内容时 "www.example.com/gizmos" 页面会在浏览器中打开,但没有选择器对话框出现在我的应用应该是一个选项的地方。

我在这里错过了什么?

你用错了intent-filter。试试这个:

<intent-filter>
    <action android:name="android.intent.action.VIEW"/>

    <category android:name="android.intent.category.DEFAULT"/>
    <category android:name="android.intent.category.BROWSABLE"/>

    <data
        android:host="www.example.com"
        android:pathPrefix="/gizmos"
        android:scheme="http"/>
</intent-filter>

要测试深层链接,您可以使用 ADB 控制台。根据您的需要修改以下命令:

adb shell am start -a android.intent.action.VIEW -c android.intent.category.BROWSABLE -d "http://www.example.com/gizmos"

如果您需要查询参数,命令应如下所示:

adb shell 'am start -a android.intent.action.VIEW -c android.intent.category.BROWSABLE -d "http://www.example.com/gizmos?myKey=myValue"'

您的数据标签应如下所示:

<data
  android:host="www.example.com"
  android:path="/gizmos/"
  android:scheme="http"/>