有人可以编写一个在 Windows 上为 FireFox 开发基于 C++ 的插件的分步指南吗?

上的链接和示例 http://www.mozilla.org/projects/plugins/ 都是旧的且不准确 - “新”链接于 2004 年添加到该页面。

这个例子可以是任何东西,但我正在考虑一个让 JavaScript 设置名称然后显示“Hello {Name}”的插件。为了显示双向通信,它可以具有返回完整称呼的属性。

虽然不是那么重要,但如果该插件也能在 Chrome 中运行那就太好了。

有帮助吗?

解决方案

也可以看看 http://developer.mozilla.org/en/Plugins 。是的,NPAPI 插件也应该可以在 Google Chrome 中使用。

[编辑2015年:Chrome 即将取消对 NPAPI 的支持 http://blog.chromium.org/2014/11/the-final-countdown-for-npapi.html ]

其他提示

如果你需要跨浏览器(firefox 和 ie)工作的东西,你可以看看 firebreath: http://www.firebreath.org

对于一般的“如何在 Windows 上构建 npapi 插件”信息,我有一些关于该主题的博客文章(也链接到上述一些来源)

http://colonelpanic.net/2009/03/building-a-firefox-plugin-part-one/

然而,我真的推荐 firebreath,因为我们正是为那些没有时间进行数月(字面上的)研究的人们创建了它,而我们需要花几个月的时间才能弄清楚它是如何工作的。不过,如果您不想将其用作插件的基础,您仍然可以在那里找到很多很好的示例代码。

也应该适用于 Windows 上的 chrome、firefox 和 safari!=]

祝你好运!

使用 NPAPI 制作插件相当简单。Gecko 发行版中需要的关键头文件是 npapi.h 和 npupp.h。您将从插件 DLL 或共享库中导出名为 NP_Initialize、NP_Shutdown、NP_GetMIMEDescription 和 NP_GetValue 的函数,并且您还需要使用所有 NPP 的处理程序填写在 NP_Initialize 调用中提供给您的符号表功能。

该集中要实现的关键函数是 NPP_New 和 NPP_Destroy。这些定义了插件实例的生命周期。如果您要处理从 <object> 或 <embed> 链接的媒体文件,您还需要处理 NPP_NewStream、NPP_WriteReady、NPP_Write 和 NPP_DestroyStream 作为插件从浏览器。还有很多内容在 Gecko 插件开发人员指南.

看看 Nixysa http://code.google.com/p/nixysa/. 。我尝试在 Mozilla SDK 中构建示例,但它们很难构建。Nixysa 样本很容易构建。而且代码比直接使用 NPAPI 简洁得多。唯一的缺点是,截至目前 Nixysa 还没有很好的文档记录。我有一个 Nixysa 示例,如果您需要的话,它可以实现回调(我确实计划在有时间时向 Nixysa 提交补丁)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top