Android インテントを使用して、Android デバイスのウェブページから直接アプリを起動できます。カスタム スキームでアプリを起動するユーザー操作を実装するか、intent:
構文を使用できます。
インテント アンカーを作成してページ内に埋め込むと、ユーザーがアプリの起動を選択できるようになります。これにより、アプリの起動方法とタイミングを柔軟に設定できるため、インテント エクストラを使用してアプリに情報を渡すことができます。
インテントベースの URI の基本的な構文は次のとおりです。
intent:
HOST/URI-path // Optional host
#Intent;
package=\[string\];
action=\[string\];
category=\[string\];
component=\[string\];
scheme=\[string\];
end;
解析について詳しくは、Android ソースコードをご覧ください。
インテントが解決されない場合、または外部アプリが起動しない場合、ユーザーは代替 URL にリダイレクトされる可能性があります。インテント エクストラを使用して代替 URL を指定できます。
S.browser_fallback_url=[encoded_full_url]
S.<name>
を使用してインテント エクストラを定義します。このエクストラには下位互換性があります。Chrome は browser_fallback_url
を削除するため、ターゲット アプリはこの値を認識しません。
以下の場合、外部アプリケーションは起動されません。
- インテントを解決できません。つまり、どのアプリもインテントを処理できません。
- 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 に対して外部アプリを起動しません。
- インテント URI は、入力した URL からリダイレクトされます。
- インテント URI は、ユーザーの操作なしで開始されます。