protocol_handlers

型別 Array
必填
Manifest 版本 2 或更高
示例
json
"protocol_handlers": [
  {
    "protocol": "ircs",
    "name": "IRC Mozilla Extension",
    "uriTemplate": "https://irccloud.mozilla.com/#!/%s"
  }
]

使用此鍵可註冊一個或多個基於 Web 的協議處理程式。

協議處理程式是一種能夠處理特定型別連結的應用程式:例如,郵件客戶端就是“mailto:”連結的協議處理程式。當用戶點選“mailto:”連結時,瀏覽器將開啟為“mailto:”協議選定的處理程式應用程式(或者,根據使用者的設定,提供處理程式供其選擇)。

注意:預設情況下,擴充套件程式在隱私瀏覽視窗中不執行。由於協議處理程式是擴充套件程式的一部分,因此預設情況下它們在隱私瀏覽視窗中不起作用。擴充套件程式是否可以訪問隱私瀏覽視窗及其協議處理程式是否啟用由使用者控制。有關詳細資訊,請參閱隱私瀏覽中的擴充套件程式。您的擴充套件程式可以使用extension.isAllowedIncognitoAccess 檢查是否可以訪問隱私瀏覽視窗。

使用此鍵,您可以將網站註冊為特定協議的處理程式。此鍵的語法和語義與Navigator.registerProtocolHandler() 函式非常相似,不同之處在於使用 registerProtocolHandler() 時,網站只能將自身註冊為處理程式。

每個協議處理程式都有三個屬性,均為必填項。

協議

一個定義協議的字串。必須是以下之一:

  • 以下之一:“bitcoin”、“dat”、“dweb”、“ftp”、“geo”、“gopher”、“im”、“ipfs”、“ipns”、“irc”、“ircs”、“magnet”、“mailto”、“matrix”、“mms”、“news”、“nntp”、“sip”、“sms”、“smsto”、“ssb”、“ssh”、“tel”、“urn”、“webcal”、“wtai”、“xmpp”。
  • 一個由自定義名稱組成的字串,以“web+”或“ext+”為字首。例如:“web+foo”或“ext+foo”。自定義名稱必須僅包含小寫ASCII 字元。建議擴充套件程式使用“ext+”形式。
name

表示協議處理程式名稱的字串。當詢問使用者是否希望此處理程式開啟連結時,將向用戶顯示此名稱。

uriTemplate

表示處理程式 URL 的字串。此字串必須包含“%s”作為佔位符:它將被要處理的文件的轉義 URL 替換。此 URL 可能是真實的 URL,也可能是電話號碼、電子郵件地址等。這是一個可本地化屬性

示例

json
"protocol_handlers": [
  {
    "protocol": "magnet",
    "name": "Magnet Extension",
    "uriTemplate": "https://example.com/#!/%s"
  }
]

如果協議不在允許列表中,則它必須以“ext+”開頭。

json
"protocol_handlers": [
  {
    "protocol": "ext+foo",
    "name": "Foo Extension",
    "uriTemplate": "https://example.com/#!/%s"
  }
]

處理程式也可以是擴充套件程式頁面

json
"protocol_handlers": [
  {
    "protocol": "magnet",
    "name": "Magnet Extension",
    "uriTemplate": "/example.xhtml#!/%s"
  }
]

瀏覽器相容性