Java Applet使用Chrome浏览器启动客户端程序有哪些替代方案?

时间:2015-05-27 12:48:31

标签: java google-chrome applet client-side

我在使用ASP.net和C#的Web应用程序中工作。

我的目标是检查客户端计算机上的桌面应用程序。如果它存在,那么我应该启动它。否则,如果它不存在,我们应该下载,安装然后启动它。

我可以使用Java Applet开发这个模块但不幸的是,谷歌决定在2015年9月禁用NPAPI,因此applet将无法在Chrome上运行。

我的问题是关于帮助我实现上述场景的Applet替代方案吗?

3 个答案:

答案 0 :(得分:2)

Google Chrome是第一个宣布他们不再支持NPAPI的人,他们也是第一个提供新架构以便重写代码以便在浏览器上工作的人。您可以查看Native Messaging,它“可以使用与其他消息传递API类似的API与本机应用程序交换消息”。问题是这种方法仅适用于Chrome,不能适应其他浏览器。

更有用的方法是FireBreath,后NPAPI世界中的浏览器插件。从项目的一个伙伴处查看以下单词:

“FireBreath 2将允许您编写一个在NPAPI,ActiveX或Native Messaging中工作的插件;它已接近准备进入测试阶段。它没有任何真正的绘图支持,但可以适用于您描述的内容。安装过程有点痛苦,但它确实有效。本机消息传递组件使用的FireWyrm协议可以与允许传递文本数据的任何连接一起使用;应该可以在firefox上使用js-ctypes,或者以某种方式使用WEB-RTC甚至CORS AJAX。目前我们唯一需要解决的问题是Chrome,但我们采用的方式对其他技术来说非常便携。“

答案 1 :(得分:2)

据我所知,唯一(半)可行的选项是为Chrome用户提供指向桌面应用程序的JNLP文件的链接。然后当/如果JWS桌面应用程序启动时,让它报告回服务器'加载确定'然后'目标应用程序。安装/未安装'。

在您的服务器上,暂停等待客户端报告。如果它通过那个时间,假定客户端机器根本不支持Java,并且用户正在检查某些Web服务以尝试找出哪个应用程序。打开JNLP!

答案 2 :(得分:2)

在搜索了实现目标的最合适方式后,我认为使用自定义协议将是从网页访问我的客户端应用程序的一个很好的解决方案。

许多公司都使用此解决方案,例如 Microsoft(使用mailto:打开Outlook应用程序) Apple(使用itms:打开iTunes应用程序)

以下链接是一个非常好的链接,谈论自定义协议: https://support.shotgunsoftware.com/entries/86754-How-to-launch-external-applications-using-custom-protocols-rock-instead-of-http-