Chrome での Android インテント

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 は、ユーザー操作なしで開始されます。