我正在编写一个协议处理程序来启动 java 应用程序,调用 java -jar myApp '%1' 等命令。目前我已经为 Chrome 实现了它,它看起来工作正常。不幸的是,我对 Firefox 和 IE 没有相同的行为(奇怪呃?!X-D)
这是我的实现。
该协议被命名为 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\""
在 chrome 上这已经足够了。
在 Firefox 上,我必须添加一些配置关于:配置.按照 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/windows/desktop/bb266527%28v=vs.85%29.aspx
http://msdn.microsoft.com/en-us/library/aa767916%28VS.85%29.aspx http://msdn.microsoft.com/en-us/library/aa767916%28VS.85%29.aspx
我真诚地希望有人能帮助我