私は、カスタムURLスキームが「appname://」のようなアプリケーションを必要としています。
多くのことを検索し、関連する質問もたくさん見つけましたが、それでも問題が解決しません。
ブラウザからこのURLスキームをテストするにはどうすればよいですか?現在、ブラウザのアドレスバーに「appname://」と入力すると、直接Google検索に移動します。
私はこれを私のAndroidManifest.xmlに持っています:
<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:scheme="appname"
Android:Host="appnamehost"/>
</intent-filter>
これはadbを使用すると簡単です。このコマンドを確認してください:
adb Shell am start -a Android.intent.action.VIEW -d "appname://appnamehost" your.package.name
ただし、スキーマとしてパッケージ名を使用する必要があります。したがって、競合がないことを確実に確認できます(詳細には、インテントチューザー)。
複数のデバイスがある場合は、adb devices
を実行する必要があります。これにより、次のような出力が得られます。
List of devices attached
1645e1d0b86b device
S9WM00904386 device
次に、上記のIDを使用して、-s
パラメータで具体的なデバイスをアドレス指定できます。これにより、次のようなコマンドラインが生成されます。
adb -s S9WM00904386 Shell [...]
ブラウザのリンクの場合、これも簡単です。次のhtml行を追加するだけです。
<a href="appname://appnamehost">Click me</a>
URLのフォールバックが必要な場合は、インテントURLを試すことができます。
<a href="intent://apphostname#Intent;scheme=appname;package=your.package.name;S.browser_fallback_url=http%3A%2F%2Fwww.example.com;end">with alternative</a>
これにより、スキーマが一意でなくてもアプリが開きます。アプリがインストールされていない場合は、example.comが開きます。