私はそのようにはしません。独自のカスタムスキームを発明しないでください。
代わりに、その特定のURL構造をサポートすると主張するアプリがインストールされている限り、最初のアプローチは問題なく機能します。
たとえば、バーコードスキャナーがインストールされているhttp://zxing.appspot.com/scan
場合、ユーザーがリンクをクリックすると、のようなURLでバーコードスキャナーアプリが起動します。これは、バーコードスキャナーが次の<intent-filter>
要素を持つアクティビティを持っているためです。
<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="http" android:host="zxing.appspot.com" android:path="/scan"/>
</intent-filter>
カスタムスキームに比べて、このアプローチには2つの利点があります。
IETFのメンバーは、許可されていないスキームを作成するために、膝蓋骨を壊すと脅迫することはありません。:-)
Androidを使用していない、またはバーコードスキャナーがインストールされていない受信者でも、リンクは引き続き機能します。このSO回答を表示するために使用しているWebブラウザーからhttp://zxing.appspot.com/scanにアクセスすると、Androidデバイスユーザーがクリックしてダウンロードできる有効なWebページにつながることがわかります。バーコードスキャナ。カスタムスキームのアプローチでは、アプリをインストールしていない他のユーザーにはまったく役に立たないURLが作成されます(たとえば、誰かがSMSを他のユーザーに転送しようとします)。
さて、特定のフルーツフレーバーのモバイルオペレーティングシステムは、私には計り知れない理由で、独自のカスタムスキームを作成することを奨励しています。あなたがそれをやりたいと本当に本当に確信しているなら、あなたは<intent-filter>
それにあなたの計画でを使うでしょう:
<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="zxing" android:host="scan" android:path="/"/>
</intent-filter>