Android 应用索引 - 使用 GET 参数对 url 进行深度链接,例如 www.abc.com?parameter=value
Android app indexing - deep linking for urls with GET params like www.abc.com?parameter=value
我正在创建一个 intent-filter 以便过滤我的应用程序 url,例如 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>
这个 intent-filter 应该像“http://example.com/gizmos?1234, http://example.com/gizmos/1234, http://example.com/gizmos/toys/1234”这样过滤 URL 个“
”
很好,但是...我的 URL 不同,它就像 http://example.com?toys=1234 因为它在主页中有一个命名的 GET 参数,即 hotel_id。
如何过滤此类 URL?是否有更多参数可以放入 intent-filter 定义中?
编辑:我在 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
但它不适用于使用 deep-link 工具自行生成的页面: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
可以看到页面中的link是intent://#Intent;scheme=hotelsclick.com?hotel_id=135738;package=com.towers.hotelsclick;结束,我希望这个 intent-link 在我之前用于 adb 命令的相同 phone 上点击移动设备时由应用程序本身打开。但它不起作用,直接将我带到 google Play 商店,建议从那里打开应用程序
所以,既然我可以通过 ADB 使 intent-filter 工作,但不能使用适当的 link,我能说我成功了吗?
谢谢
生成的 link 无效。应该是
intent://hotelsclick.com?hotel_id=135738#Intent;scheme=http;package=com.towers.hotelsclick;end
而不是
intent://#Intent;scheme=hotelsclick.com?hotel_id=135738;package=com.towers.hotelsclick;end
我正在创建一个 intent-filter 以便过滤我的应用程序 url,例如 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>
这个 intent-filter 应该像“http://example.com/gizmos?1234, http://example.com/gizmos/1234, http://example.com/gizmos/toys/1234”这样过滤 URL 个“
”很好,但是...我的 URL 不同,它就像 http://example.com?toys=1234 因为它在主页中有一个命名的 GET 参数,即 hotel_id。
如何过滤此类 URL?是否有更多参数可以放入 intent-filter 定义中?
编辑:我在 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
但它不适用于使用 deep-link 工具自行生成的页面: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
可以看到页面中的link是intent://#Intent;scheme=hotelsclick.com?hotel_id=135738;package=com.towers.hotelsclick;结束,我希望这个 intent-link 在我之前用于 adb 命令的相同 phone 上点击移动设备时由应用程序本身打开。但它不起作用,直接将我带到 google Play 商店,建议从那里打开应用程序
所以,既然我可以通过 ADB 使 intent-filter 工作,但不能使用适当的 link,我能说我成功了吗?
谢谢
生成的 link 无效。应该是
intent://hotelsclick.com?hotel_id=135738#Intent;scheme=http;package=com.towers.hotelsclick;end
而不是
intent://#Intent;scheme=hotelsclick.com?hotel_id=135738;package=com.towers.hotelsclick;end