我正在创建一个意图过滤器,以便过滤我的应用程序网址,例如https://www.hotelsclick.com/?hotel_id=135738
我在文档中看到我应该创建一个意图过滤器,例如
<intent-filter android:label="@string/filter_title_viewgizmos">
<action android:name="android.intent.action.VIEW" />
<!-- Accepts URIs that begin with "http://example.com/gizmos” -->
<data android:scheme="http"
android:host="example.com"
android:pathPrefix="/gizmos" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
此意图过滤器应过滤 URL,例如“ http://example.com/gizmos?1234、http://example.com/gizmos/1234、http://example.com/gizmos/toys/1234 ”
这很好,但是...我的 URL 不同,它就像http://example.com?toys=1234,因为它在主页中有一个命名的 GET 参数,即hotel_id。
如何过滤此类 URL?是否有更多参数可以放入意图过滤器定义中?
编辑:我将以下意图过滤器放入我的 Manifest.xml
<intent-filter android:label="@string/app_name">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https"
android:host="hotelsclick.com" />
<data android:scheme="http"
android:host="hotelsclick.com" />
</intent-filter>
我可以通过提供这个 ADB 命令打开应用程序
adb shell am start -a android.intent.action.VIEW -d " http://hotelsclick.com?hotel_id=135738 " com.towers.hotelsclick
但它不适用于使用深度链接工具自行生成的页面:https ://developers.google.com/app-indexing/webmasters/test?hl=it
我在editText中输入了网页的以下URI:“android-app://com.towers.hotelsclick/hotelsclick.com?hotel_id=135738”,我得到了这个页面:https ://applinktest.appspot.com/app -link.html?url=android-app%3A%2F%2Fcom.towers.hotelsclick%2Fhotelsclick.com%3Fhotel_id%3D135738
如您所见,页面中的链接是intent://#Intent;scheme=hotelsclick.com?hotel_id=135738;package=com.towers.hotelsclick;end 我希望这个intent-link由应用程序本身打开在我之前用于 adb 命令的同一部手机上单击移动设备时。但它不起作用,直接把我带到谷歌游戏商店,建议从那里打开应用程序
那么,既然我可以通过 ADB 使意图过滤器工作,但不能通过正确的链接,我可以说我成功了吗?
谢谢