gpt4 book ai didi

java - 编写可移植到 Firefox、Chrome 和 IE 上运行的自定义协议(protocol)处理程序

转载 作者:可可西里 更新时间:2023-11-01 10:37:09 25 4
gpt4 key购买 nike

我正在编写协议(protocol)处理程序来启动 java 应用程序,调用类似 java -jar myApp '%1' 的命令。目前我已经为 Chrome 实现了它,它看起来工作正常。不幸的是,我对 Firefox 和 IE 没有相同的行为(奇怪啊?!X-D)

这是我的实现。

协议(protocol)名为 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 上,我必须在 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>

这里有一些引用资料: Installing and Registering Protocol Handlers http://msdn.microsoft.com/en-us/library/aa767916%28VS.85%29.aspx

我真诚地希望有人能帮助我

最佳答案

您遇到的问题是您直接在协议(protocol)处理程序中调用 jar。您需要使用 -jar 参数调用 java.exe

您的注册表项应如下所示

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\digitalmgi]
@="URL:digitalmgi protocol"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\digitalmgi\DefaultIcon]
@="C:\\myCoolIcon.ico"

[HKEY_CLASSES_ROOT\digitalmgi\Shell]

[HKEY_CLASSES_ROOT\digitalmgi\Shell\Open]

[HKEY_CLASSES_ROOT\digitalmgi\Shell\Open\Command]
@="\"C:\\Program Files\\Java\\jre7\\bin\\java.exe\" -jar \"C:\\MyPath\\myJar.jar\" \"%1\""

关于java - 编写可移植到 Firefox、Chrome 和 IE 上运行的自定义协议(protocol)处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19221677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com