Firefox addon Firefox WebExtensions中的自定义协议
我有一个Firefox的旧插件,它注册了一个自定义协议“linkpassword://” 由于Firefox版本57,插件停止工作,我不得不将完整的插件重写为Firefox WebExtenstion 我的问题是我找不到注册协议“linkpassword://”处理程序的方法Firefox WebExtensions的manifest.json中的“protocol\u handlers”部分可用于注册公共或自定义协议处理程序 但是从网站上的文档来看,似乎您必须在自定义协议处理程序前面加上web+某物或ext+某物 您只需使用扩展中的页面作为“uriTemplate”即可处理扩展中的链接,如下所示:Firefox addon Firefox WebExtensions中的自定义协议,firefox-addon,firefox-addon-webextensions,Firefox Addon,Firefox Addon Webextensions,我有一个Firefox的旧插件,它注册了一个自定义协议“linkpassword://” 由于Firefox版本57,插件停止工作,我不得不将完整的插件重写为Firefox WebExtenstion 我的问题是我找不到注册协议“linkpassword://”处理程序的方法Firefox WebExtensions的manifest.json中的“protocol\u handlers”部分可用于注册公共或自定义协议处理程序 但是从网站上的文档来看,似乎您必须在自定义协议处理程序前面加上web
"protocol_handlers": [
{
"protocol" : "ext+linkpassword",
"name" : "Password Link",
"uriTemplate": "html/processLink.html#login=%s"
}
],
目前,您无法向WebExtensions注册
linkpassword://
的处理程序
到目前为止,只允许使用指定的白名单协议而不使用前缀(比特币bitcoin
,geo
,gopher
,im
,irc
,ircs
,mailto
,mms
,news
,nntp
,sip
,sms
,smsto
,,, ,wtai
,xmpp
)。任何其他自定义名称都需要以web+
或ext+
作为前缀。请参阅参考
使用前缀,您可以通过以下方式进行注册:
"protocol_handlers": [
{
"protocol" : "ext+linkpassword",
"name" : "Password Link",
"uriTemplate": "html/processLink.html#login=%s"
}
],
然后您必须在链接中使用ext+linkpassword://
来触发处理程序
虽然在WebExtensions的当前状态下,您无法为任意协议(如linkpassword://
)设置处理程序,但它可能会在某一点上发生变化,因为这是有可能的,但很难说什么时候会发生这种情况。在真正的解决方案可用之前,作为临时解决办法,您可以修补linkpassword://
使用WebExtension JS代码在网页上执行ext+linkpassword://
,这样即使网页上的链接加载了linkpassword://
架构,处理程序仍会被触发