- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
情况:我已经为我的 IE 用户编写了一个完美运行的 ActiveX 控件。我构建了 .ocx,对其进行了 CAB,签名,然后将其放置在带有 EMBED 标签的站点上。用户加载页面,黄色栏出现,询问他们是否要安装它:他们所要做的就是点击它,我们就离开了。
现在我需要构建对 FF、Chrome 和 Safari(在 Mac 上)的支持。根据我的研究,NPAPI 是做到这一点的方法,而 Firebreath 应该让它更容易。但从我所读到的,部署并不是那么容易。 Windows 用户必须在 DLL 上运行“regsvr32”(我的网络用户实际上都不会这样做)。我不知道在 Mac 上会发生什么。我相信用户必须将其复制到/Library/Internet\Plugins/之类的目录中,这也是部署的非启动项。 Firefox 用户会下载/运行 .xpi。 Chrome 应该运行 .crx。
有没有人有这方面的经验?您如何为其他三大浏览器部署一个易于用户运行的 NPAPI 插件?
最佳答案
这是 FireBreath 用户经常提出的一个问题,所以我可能是时候在比项目 google 组更容易找到的论坛上更详细地回答了。
首先,澄清一下 regsvr32 的问题,FireBreath 确实支持所有浏览器的“自注册”;这意味着当您调用 regsvr32 时,它不仅会为 IE 安装注册表项,还会使用 DReJ 链接的方法为 NPAPI 浏览器安装注册表项(该信息为 +1,顺便说一句,谢谢。许多人不知道在哪里可以找到它)。
但是,安装程序世界和 Microsoft 强烈反对自注册 DLL。这有很多原因。您在帖子中总结了其他安装选项方面做得很好;您可以在 IE 上使用 .cab 文件,在 Firefox 上使用 .XPI 文件,但当然这些在其他浏览器上无济于事。
FireBreath 团队(由我领导)推荐的方法是对所有浏览器使用 MSI 安装程序。就我个人而言,我不喜欢在不同的浏览器上安装不同的东西,所以我使用 javascript 来检测插件的存在(或不存在),然后提示用户下载并运行 MSI 安装程序。
FireBreath 对使用 WiX 构建 MSI 安装程序具有“内置”支持。如果您在计算机上安装 WiX 3.0 或更高版本并重新运行准备脚本,它将创建一个 _WiXInstaller 项目,该项目将构建一个基本的 MSI,作为 Visual Studio 构建过程的一部分,为所有浏览器安装您的插件。您可以修改将保留在您的主目录中的 .wxs 模板以对其进行自定义。
更多信息可以在 FireBreath wiki 上找到:
http://www.firebreath.org/display/documentation/WiX+Installer+Help
http://www.firebreath.org/display/~me@iaincollins.com/Potential+Installer+Improvements
如果您真的很喜欢在 IE 上使用 .cab 安装程序(我遇到了它们的问题,但有些人似乎很幸运)您可以在 CAB 中分发 MSI 文件,并在 CAB 运行时运行它安装。这样做的好处是,当您安装 MSI 时,它会为 IE、Firefox、Safari、Chrome 和 Opera(以及与这些浏览器使用的相同插件技术兼容的其他浏览器)安装所有内容。
快速说明一下,MSI 是安装插件的理想解决方案(而不是使用像 regsvr32 这样调用 DllRegisterServer 的东西)的原因是 MSI 是基于事务的,所以当你卸载它时,它总是会反转插入的内容;这意味着您不必担心支持卸载 10 个不同的旧安装程序版本,这些安装程序将东西放在不同的地方等,因为 MSI 系统会在您升级时负责干净地卸载所有内容。
希望有帮助!
关于以最少的用户步骤部署 NPAPI 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4468708/
Chrome 正在逐步淘汰 NPAPI。编写具有跨浏览器支持的浏览器插件之类的 NPAPI 的替代方法是什么?我需要编写一个可以与基于桌面的已安装应用程序对话的浏览器插件。我的环境是这样的,我有一个桌
我知道如果我写一个 C++ 插件,那么我至少需要有 Linux、Mac、Windows 版本,但完整的组合列表是什么?许多浏览器都支持 NPAPI,所以这是否意味着完全相同的编译后的 NPAPI 插件
我需要为 Firefox、Chrome、Operah 和 Safari 开发一个迷你 ClickOnce 插件(最好是一个适用于上述所有的插件)。 我的插件需要能够以一键式方式运行应用程序。换句话说,
我想将字符串数组从 NPAPI 插件返回到 Javascript。目前我只使用普通的 NPAPI。我已阅读以下链接: NPVariant to string array http://www.m0in
我的查询类似于此 global.html is unable to load NPAPI plugin from safari-extension builder but its loading fr
我正在使用 Chrome 来显示我的小程序内容。但现在该支持已从 Chrome 中删除。请建议是否有其他方法可以在 Chrome 浏览器中显示小程序内容。我们赞赏最小的改变。 最佳答案 Oracle
我已经搜索了大约一个小时了,我已经觉得有点愚蠢了。在哪里可以找到 NPAPI 的下载?我浏览过Gecko Plugin API Reference有点,但找不到下载链接。我还下载了Gecko SDK
情况:我已经为我的 IE 用户编写了一个完美运行的 ActiveX 控件。我构建了 .ocx,对其进行了 CAB,签名,然后将其放置在带有 EMBED 标签的站点上。用户加载页面,黄色栏出现,询问他们
我正在使用 NPAPI 在 Javascript 中回调一个对象。在此调用之前,我正在调用的函数导致在 JavaScript 中正确调用函数,但在 NPN_Invoke 调用中失败。 代码片段: sB
我已经使用 firebreath 编写了 NPAPI 插件。它适用于所有注册的 mime 类型。该插件也已注册为 video/x-flv。现在,每当我在地址栏中输入一个 url,其响应包含 video
我正在编写一个包含两种插件类型的 NPAPI 插件: x-capture 用于从相机中捕捉一些视频 x-display 用于显示x-capture对象捕获的图像 我有以下使用该插件的 HTML/Jav
在我使用 FireBreath 和 OpenGL 编写完浏览器插件并使用对象标签嵌入插件后,我尝试在插件之上覆盖各种 HTML 元素。不幸的是,无论我如何尝试,标签和插件图形总是位于页面上任何其他 H
我正在尝试创建一个 Mozilla 浏览器插件,其唯一目的是使用 javascript 检测是否安装了我编写的应用程序。这是受到另一个 stackoverflow question and answe
我对 npapi 中的引用计数感到困惑。大多数情况下,我不知道哪种方法会增加引用计数。任何人都可以详细解释一下吗?为了方便起见,我在这里列出了最常用的 NPN_* 函数和我自己的理解: NPN_Cre
Chrome 和现在的 Firefox 现已逐步淘汰 NPAPI 插件。 NPAPI 折旧的可行解决方案是什么?我支持基于 java 的小程序,该小程序将不再在主要浏览器中运行。我需要一种替代方案,允
据我了解,浏览器公司不再对使用智能卡、小程序等的应用程序感兴趣。所以,我想问一下你们今后在没有 NPAPI 的情况下将采取的方法。 在我的公司,我们正在开发一个新的应用程序,它基本上是对 secret
我有一个在 Safari、Chrome 和 Firefox 中运行的 NPAPI 插件。我能够使用事件回调处理所有组合键,但我遇到的问题是某些组合键。 在插件中,我尝试使用 Command+O 来触发
我在 HTML 页面中嵌入了一个 NPAPI 插件。当我从浏览器的开发人员控制台调用方法时,一切正常 - 方法调用落在正确的插件实例上并正确执行。无论如何,当我从 JS 回调调用相同的方法时,例如单击
我想开发一个浏览器插件,用于在网络浏览器上进行 RTSP 流传输,我读到了有关 NPAPI 的信息,它可以执行 native 代码(C++)。但 Google Chrome 将来将不支持 NPAPI,
现在Chrome和 FireFox (FF 在较小但仍然相关的程度上)正在删除对 NPAPI(主要是 Java)和 Edge (formerly Spartan 的支持。不会有它,有什么选择? 我很欣
我是一名优秀的程序员,十分优秀!