protocol_handlers

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

  1. background_color
  2. categories
  3. description
  4. display
  5. display_override Experimental
  6. file_handlers Experimental
  7. icons
  8. id
  9. launch_handler Experimental
  10. name
  11. note_taking Experimental
  12. orientation
  13. prefer_related_applications Experimental
  14. protocol_handlers Experimental
  15. related_applications Experimental
  16. scope
  17. scope_extensions Experimental
  18. screenshots
  19. serviceworker Experimental 非標準
  20. share_target Experimental
  21. short_name
  22. shortcuts
  23. start_url
  24. theme_color

Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

protocol_handlers メンバーは、このウェブアプリが登録・処理することができるプロトコルを表すオブジェクトの配列を指定します。プロトコルハンドラーは、 OS のアプリケーション設定にアプリケーションを登録します。登録は、特定のアプリケーションと与えられたプロトコルスキームを関連付けます。例えば、ウェブページで mailto:// というプロトコルハンドラーを使用すると、登録されたメールアプリケーションが開きます。

プロトコルハンドラーとしてウェブアプリを登録すると、ユーザーがブラウザーやネイティブアプリから mailto://web+music:// などの特定のスキームを持つハイパーリンクをクリックすると、登録した PWA が開いてその URL を受信することができるようになります。

プロトコルハンドラーオブジェクトには、次の値が含まれている場合があります。

protocol Experimental

必須の文字列で、処理するプロトコルを指定します。例えば、mailtoms-wordweb+jngl です。

url Experimental

必須で、アプリケーションの scope 内でそのプロトコルを処理する HTTPS URL です。 %s トークンは、プロトコルハンドラーのスキームで始まる URL に置き換えられます。 url が相対 URL の場合、ベース URL はマニフェストの URL になります。

この例では、ウェブアプリのマニフェストで、プロトコルの web+jnglweb+jnglstore を処理するためにアプリを登録することを宣言しています。

json
"protocol_handlers": [
  {
    "protocol": "web+jngl",
    "url": "/lookup?type=%s"
  },
  {
    "protocol": "web+jnglstore",
    "url": "/shop?for=%s"
  }
]

開発者は manifest.json にフィールドを追加して、ウェブアプリがどのプロトコルを処理できるかを宣言することができます。上記の例で見られるように、キーは protocol_handlers という名前で、プロトコル ハンドラー宣言オブジェクトの配列が含まれています。

URL スキームを処理するためのアプリケーションの登録は、オペレーティングシステムに依存します。この関連付けは通常、アプリケーションのインストール時に行われますが、既にインストールされているアプリケーションから後で行われることもあります。

仕様書

Specification
Manifest Incubations
# protocol_handlers-member

ブラウザーの互換性