アプリのマニフェストに次のインテント フィルターを登録しました。
<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="m.mycompany.de"
android:pathPattern="/app/list"
android:scheme="http" />
</intent-filter>
そして、アプリが正しく開くかどうかをテストするための簡単な HTML ページを作成しました。
<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML>
<HEAD>
<TITLE>
A Small Hello
</TITLE>
</HEAD>
<BODY>
<a href = "http://m.mycompany.de/app/list?param1=178¶m2=87294">Click</a>
</BODY>
</HTML>
一部のデバイス (Android 5.1 を実行している Nexus 5 など) では、リンクをクリックすると期待どおりにアプリが開きますが、他のデバイス (同じく 5.1 を実行している Nexus 6 など) では、アプリではなく PlayStore (アプリのページ) が開きます。
何が問題なのか、何か考えはありますか?
編集:不思議なことに、この「バグ」は URL を次のように簡略化すると消えます。
http://m.mycompany.de/list?param1=178¶m2=87294
そして私の意図フィルターは
<data
android:host="m.mycompany.de"
android:pathPattern="/app"
android:scheme="http" />
ただし、ライブ アプリの URL を制御できないため、これはオプションではありません。
ベストアンサー1
使用できますパスプレフィックスの代わりにandroid:パスパターン
<data
android:host="m.mycompany.de"
android:pathPrefix="/app/list"
android:scheme="http" />
2番目のケースでは、以下のURLを使用すると、
http://m.mycompany.de/list?param1=178¶m2=87294
データタグは
<data
android:host="m.mycompany.de"
android:pathPrefix="/list"
android:scheme="http" />