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