2013-04-17 16 views
14

从Chrome访问Google Mail或Google日历时,地址栏中会出现小图标,允许为URI方案安装自定义服务处理程序(在图片中用红色方框标记)。从网页安装URI方案的服务处理程序

Icon for installing custom service handler

工具提示图标是:This page wants to install a service handler。当我点击图标并允许Google Mail处理mailto:链接时,所有mailto:链接均在Chrome中打开。

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

回答

21

对于铬(13+),火狐(3.0+)和Opera(11.60+),可以用注册的Web应用程序的定制URI方案服务处理程序的JavaScript API:

window.navigator.registerProtocolHandler(protocol, uri, title); 
  • 是网站希望处理的协议,指定为字符串。
  • uri是作为字符串处理程序的URI。您可以包含“%s”以指示插入要处理的文档的转义URI的位置。
  • title是作为字符串呈现给用户的处理程序的标题。

专为Chrome也不允许使用不与web+前缀开头的自定义计划的限制(除标准的:mailtommsnntprtspwebcal)。所以,如果你想为Gmail如何注册您的Web应用程序作为服务处理程序,你应该写这样的事情:

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

navigator.registerProtocolHandler("web+myscheme", "https://www.example.com/?uri=%s", "My Cool App"); 

讲究的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

下面是一些有用的链接:

+0

这非常有用。 –