protocol_handlers
| 类型 | Array |
|---|---|
| 必填 | 否 |
| Manifest 版本 | 2 或更高 |
| 示例 |
json |
使用此键可注册一个或多个基于 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"
}
]
浏览器兼容性
加载中…