Javascript 从网页安装URI方案的服务处理程序

Javascript 从网页安装URI方案的服务处理程序,javascript,google-chrome,gmail,uri,uri-scheme,Javascript,Google Chrome,Gmail,Uri,Uri Scheme,从Chrome访问Google Mail或Google Calendar时,addressbar中会出现一个小图标,允许为URI方案安装自定义服务处理程序(图中用红方块标记) 图标的工具提示为:此页面要安装服务处理程序。当我点击图标并允许Google Mail处理mailto:链接时,所有mailto:链接都会在Chrome中打开 是否可以创建一个网页,以便能够像Google Mail那样为我的自定义URI方案安装自定义处理程序?对于Chrome(13+)、Firefox(3.0+)和Oper

从Chrome访问Google Mail或Google Calendar时,addressbar中会出现一个小图标,允许为URI方案安装自定义服务处理程序(图中用红方块标记)

图标的工具提示为:
此页面要安装服务处理程序
。当我点击图标并允许Google Mail处理
mailto:
链接时,所有
mailto:
链接都会在Chrome中打开

是否可以创建一个网页,以便能够像Google Mail那样为我的自定义URI方案安装自定义处理程序?

对于Chrome(13+)、Firefox(3.0+)和Opera(11.60+)来说,可以使用JavaScript API将web应用程序注册为自定义URI方案的服务处理程序:

window.navigator.registerProtocolHandler(protocol, uri, title);
  • 协议
    是站点希望处理的协议,指定为字符串
  • uri
    是处理程序作为字符串的uri。您可以包含“%s”以指示在何处插入要处理的文档的转义URI
  • title
    是以字符串形式呈现给用户的处理程序的标题
特别是对于Chrome,有一个限制,即不允许使用不以
web+
前缀开头的自定义方案(标准方案除外:
mailto
mms
nntp
rtsp
webcal
)。因此,如果你想像GMail一样将你的web应用注册为服务处理程序,你应该这样写:

navigator.registerProtocolHandler("mailto", "https://www.example.com/?uri=%s", "Example Mail");

注意URI模式,它必须包含
%s
,它将被用户点击链接的实际URI替换。例如:

<a href="web+myscheme:some+data">Open in "My Cool App"</a>

将触发
GET
请求
http://www.example.com/?uri=web%2Bmyscheme%3Asome%20data

以下是一些有用的链接:

  • 标准
  • MDN
  • HTML5ROCKS

这非常有用。
<a href="web+myscheme:some+data">Open in "My Cool App"</a>