Android インテントを使用すると、Android デバイスのウェブページから直接アプリを起動できます。ユーザー操作を実装して、カスタム スキームでアプリを起動したり、intent:
構文を使用したりできます。
インテント アンカーを作成してページ内に埋め込むことで、ユーザーがアプリを起動することを選択できるようにします。これにより、アプリの起動方法とタイミングを柔軟に決められるため、インテント エクストラを使用してアプリに情報を渡すことができます。
インテントベースの URI の基本的な構文は次のとおりです。
intent:
HOST/URI-path // Optional host
#Intent;
package=\[string\];
action=\[string\];
category=\[string\];
component=\[string\];
scheme=\[string\];
end;
解析の詳細については、Android ソースコードをご覧ください。
インテントが解決されなかった場合や、外部アプリケーションが起動されなかった場合、ユーザーはフォールバック URL にリダイレクトされます。Intent Extra を使用してフォールバック URL を指定できます。
S.browser_fallback_url=[encoded_full_url]
S.<name>
を使用して、インテント エクストラを定義します。この追加機能は下位互換性があります。Chrome は browser_fallback_url
を削除するため、ターゲット アプリはこの値を認識しません。
次の場合には、Chrome は外部アプリケーションを起動しません。
- インテントを解決できません。つまり、インテントを処理できるアプリはありません。
- JavaScript タイマーがユーザー操作なしでアプリを開こうとしました。
例
Zxing バーコード スキャナ アプリを起動するインテントを次に示します。
intent:
//scan/
#Intent;
package=com.google.zxing.client.android;
scheme=zxing;
end;
Zxing バーコード スキャナ アプリを起動するには、アンカーで href
をエンコードします。
<a href="intent://scan/#Intent;scheme=zxing;package=com.google.zxing.client.android;end">
Take a QR code
</a>
パッケージとホストを定義する Android Zxing マニフェストをご覧ください。
フォールバック URL が指定されている場合、完全な URL は次のようになります。
<a href="intent://scan/#Intent;scheme=zxing;package=com.google.zxing.client.android;S.browser_fallback_url=http%3A%2F%2Fzxing.org;end">
Take a QR code
</a>
アプリが見つからないとき、ユーザー操作なしで JavaScript によってリンクがトリガーされたとき、または外部アプリケーションを起動しないその他の場合に、URL がユーザーを zxing.org
に送信するようになりました。
考慮事項
エクストラを含むインテントを使用して Android アクティビティを呼び出す場合は、これらの詳細も含めることができます。
このメソッドを使用して呼び出せるのは、カテゴリ フィルタ android.intent.category.BROWSABLE を持つアクティビティのみです。これは、ブラウザからアプリケーションを開いても安全であることを示します。
次のいずれかの場合、Chrome は特定のインテント URI に対して外部アプリを起動しません。
- 入力された URL からインテント URI がリダイレクトされる。
- インテント URI は、ユーザー操作なしで開始されます。