ClickOnce for Chrome现在不支持NPAPI?

时间:2014-09-30 14:46:06

标签: .net google-chrome google-chrome-extension clickonce

我使用的应用程序与Microsoft的ReportBuilder 3.0(SQL Server Reporting Services的一部分)集成.ReportBuilder是Microsoft ClickOnce应用程序。我们官方支持的浏览器是Firefox,Chrome和某些版本的IE。

Microsoft提供官方Firefox插件(Microsoft .NET Framework Assistant),但Chrome没有提供任何内容。直到最近,我们才指示用户安装您可以在此处看到的开源扩展程序:https://github.com/rajkosto/ChromeClickOnce

此扩展程序已从Chrome网上应用店中删除,我的理解是Chrome正在从浏览器中删除所有NPAPI功能。我们的用户在Chrome中使用我们的产品时无法再使用ReportBuilder,这对我们来说是个大问题。

有没有办法让ClickOnce再次在Chrome中运行?我们不能成为唯一遭受这个问题的人。感谢您提供的任何建议。

4 个答案:

答案 0 :(得分:5)

我花了几个小时研究这个并提出了以下解决方案。我警告你,这至多是hacky。

创建一个在客户端计算机上创建URI Scheme的注册表文件: http://msdn.microsoft.com/en-us/library/ie/aa767914(v=vs.85).aspx

对于您执行的程序,您可以使用剥离Scheme的自定义exe(在我的情况下,我称之为ReportBuilder,链接看起来像<a href="ReportBuilder:http://...">test</a>)或者我使用了批处理文件(见下文)然后使用url调用Internet Explorer:

set str=%1
set str=%str:ReportBuilder:=%
"C:\Program Files\Internet Explorer\iexplore.exe" %str%

因此,最终当链接被点击时,它会调用此批处理文件,该批处理文件会调用Internet Explorer,从而打开ClickOnce应用程序的链接。

到目前为止,这是我能够让它发挥作用的唯一方法。我尝试过使用两个不同的ClickOnce扩展程序,这两个扩展程序都不再有效。我也尝试过使用IE标签,但这也无效。

希望这有助于某人。

答案 1 :(得分:2)

我使用IETab扩展程序(http://www.ietab.net/)来查看chrome以将Clickonce视为IE。

答案 2 :(得分:2)

一家名为Meta4的公司在Chrome网上应用店中出现了一个新的ClickOnce扩展程序。

https://chrome.google.com/webstore/detail/meta4-clickonce-launcher/jkncabbipkgbconhaajbapbhokpbgkdc/reviews

要求您下载并运行可执行文件。否则效果很好!在Chrome 38上测试过,一切都很好。

答案 3 :(得分:1)

有没有办法让NPAPI再次运作?

很少的方式(仅限企业安装,仅限32位),无论如何它都会消失。不值得努力。

NPAPI以外的其他方式是否可以与[Native app]对话?

是的,虽然需要完全重写。您已将Native Messaging替换为NPAPI。

基本的想法是拥有一个“代理”原生应用程序,在本术语中称为本机主机,Chrome可以启动,并且可以代表您与[Native app]进行通信。 Chrome只会通过JSON编码的邮件中的标准输入/输出进行通信,但您的代理可以通过任何方式与原始应用进行交互。

有关详细信息,请参阅the docs