Android深层链接无效

时间:2015-10-09 13:17:43

标签: android deep-linking

我想让我的应用程序使用深层链接。对于初学者,当我输入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”时,页面会在浏览器中打开,但不会出现选择器对话框,我的应用程序应该是一个选项。

我在这里缺少什么?

2 个答案:

答案 0 :(得分:1)

您使用的是错误的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>

答案 1 :(得分:1)

要测试深层链接,您可以使用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"/>