我正在编写一个协议处理程序来启动一个 java 应用程序,调用一个类似 java -jar myApp '%1' 的命令。目前我已经为 Chrome 实现了它,它看起来工作正常。不幸的是,我对 Firefox 和 IE 没有相同的行为(奇怪啊?!XD)
这是我的实现。
该协议名为 dgh。在第一次安装期间,我的应用程序在 Windows 注册表中设置了以下键
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\dgh]
@="URL:DgHome Protocol"
"URL Procol"=""
[HKEY_CLASSES_ROOT\dgh\DefaultIcon]
@="C:/DGHOME/IPlusConf.exe,1"
[HKEY_CLASSES_ROOT\dgh\shell]
[HKEY_CLASSES_ROOT\dgh\shell\open]
[HKEY_CLASSES_ROOT\dgh\shell\open\command]
@="java -jar C:/DGHOME/Pch/lib/pch.teleconsulto.jar \"%1\""
在铬上这就足够了。在 Firefox 上,我必须在about:config中添加一些配置。在 Firefox 上遵循 MDN 我设置以下
network.protocol-handler.expose.dgh;true
network.protocol-handler.external.dgh;true
network.protocol-handler.warn-external.dgh;false
这样,firefox 至少会问我是否要启动应用程序并要求我选择一个:我不想要那个,我会调用我设置的命令并在第一次通知用户时告诉用户:
在 IE 上没有任何反应,它说无法通过我的链接打开网页引用。
这是我用作测试的一组链接
<a href="dgh://call/open?id='kit1.teleconsulto'">Open call to kit1.teleconsulto</a>
<a href="dgh://teleconsult/start?id='kit1.teleconsulto'">
Open teleconsult to kit1.teleconsulto</a>
<a href="dgh://call/close">Close call</a>
<a href="dgh://call/end">Close client</a>
<a href="dgh://stethoscope/start">On Phonendo</a>
这里有一些参考: 安装和注册协议处理程序 http://msdn.microsoft.com/en-us/library/aa767916%28VS.85%29.aspx
我真诚地希望有人可以帮助我