protocol_handlers
类型 | 数组 |
---|---|
必需 | 否 |
清单版本 | 2 或更高版本 |
示例 |
json
|
使用此密钥注册一个或多个基于 Web 的协议处理程序。
协议处理程序是可以处理特定类型链接的应用程序:例如,邮件客户端是“mailto:”链接的协议处理程序。当用户点击“mailto:”链接时,浏览器会打开选择作为“mailto:”协议处理程序的应用程序(或根据其设置提供处理程序选择)。
注意:默认情况下,扩展程序不会在隐身窗口中运行。由于协议处理程序是扩展程序的一部分,因此默认情况下它们在隐身窗口中不起作用。扩展程序是否可以访问隐身窗口及其协议处理程序是否处于活动状态由用户控制。有关详细信息,请参阅隐身窗口中的扩展程序。您的扩展程序可以使用extension.isAllowedIncognitoAccess
检查它是否可以访问隐身窗口。
使用此密钥,您可以将网站注册为特定协议的处理程序。此密钥的语法和语义与Navigator.registerProtocolHandler()
函数非常相似,只是使用registerProtocolHandler()
,网站只能将自身注册为处理程序。
每个协议处理程序都有三个属性,所有属性都是必需的
protocol
-
定义协议的字符串。这必须是以下之一:
- 以下之一:“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"
}
]
浏览器兼容性
BCD 表仅在浏览器中加载