Chrome正逐步淘汰NPAPI。编写具有跨浏览器支持的浏览器插件的NPAPI有哪些替代方案?我需要编写一个浏览器插件,可以与基于桌面的已安装应用程序进行通信。我的环境是这样的,我有一个桌面应用程序和相同的Web版本。两者需要沟通。我的要求不仅仅是消息传递。我需要首先确定是否安装了桌面应用程序。我通过查看Windows注册表的安装信息来做到这一点,如果已安装,我会与应用程序通信并交换消息。
答案 0 :(得分:6)
对于每个可能的NPAPI插件都没有单独的替代品(根据设计,因为使NPAPI能够完成所有操作的相同事情使其变得不安全且不可移植),并且除了Web平台本身之外没有任何跨浏览器。
你应该查看deprecation guide的指针列表;鉴于你想要做的是与应用程序通信,Native Messaging可能就是你想要的。
答案 1 :(得分:3)
我通过完全丢弃NPPAPI插件解决了这个问题,而是设计了基于WCF的Web服务器。 我的要求是我需要访问Windows注册表,文件系统等,并与我的机器上运行的进程建立通信通道以交换消息。之前我曾经安装过一个基于NPPAPI的COM插件,它会为我做这一切。随着对NPPAPI的支持越来越少,我不得不寻找其他方式。
我设计了一个基于WCF的服务,该服务作为Web Server控制台应用程序公开。我在机器上安装了这个应用程序,并通过Ajax调用与之通信。它是跨域通信,因此我需要在呼叫请求/响应中设置正确的标头。
当服务封装在Web服务器控制台应用程序中时,我可以通过XHR与它通信。