https://www.hotelsclick.com/?hotel_id=135738のようなアプリの URL をフィルター処理するために、インテント フィルターを作成しています。
ドキュメントで、次のようなインテント フィルターを作成する必要があることがわかります。
<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>
このインテント フィルタは、「http://example.com/gizmos?1234、http://example.com/gizmos/1234、http://example.com/gizmos/toys/1234」のような URL をフィルタリングする必要があります。
それはいいのですが... 私の URL は異なります。http://example.com?toys=1234 のようなものです。これは、home ページに名前付きの 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 を Web ページに入れました: -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であり、このインテントリンクがアプリ自体によって開かれることを期待していました以前にadbコマンドに使用したのと同じ電話でモバイルをクリックしたとき。しかし、それは機能せず、Google Playストアに直接移動し、そこからアプリを開くことを提案します.
では、ADB を介してインテント フィルターを機能させることはできますが、適切なリンクを使用することはできないため、成功したか失敗したと言えますか?
ありがとうございました