protocol_handlers

非標準: この機能は標準ではなく、標準化の予定もありません。公開されているウェブサイトには使用しないでください。ユーザーによっては使用できないことがあります。実装ごとに大きな差があることもあり、将来は振る舞いが変わるかもしれません。

Array
必須 いいえ

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

プロトコルハンドラーとしてウェブアプリを登録すると、ユーザーがブラウザーやネイティブアプリから mailto://web+music:// などの特定のスキームを持つハイパーリンクをクリックすると、登録した PWA が開いてその 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 スキームを処理するためのアプリケーションの登録は、オペレーティングシステムに依存します。この関連付けは通常、アプリケーションのインストール時に行われますが、既にインストールされているアプリケーションから後で行われることもあります。

プロトコルハンドラーオブジェクトには、以下の値を指定することができます。

メンバー 説明
protocol 必須の文字列で、処理するプロトコルを指定します。 例: mailto, ms-word, web+jngl.
url プロトコルを処理するアプリケーションのスコープ (scope) 内の必要な HTTPS URL。 %s トークンは、プロトコルハンドラーのスキームで始まる URL に置換されます。 url が相対 URL であった場合、ベース URL はマニフェストの URL になります。

仕様書

この機能はどの仕様書にも含まれていません。 Manifest 仕様書へ追加する提案が行われています。 [1] [2]

ブラウザーの互換性

BCD tables only load in the browser