37

我很好奇为 Chrome、Safari 和 Opera 等浏览器编写浏览器插件的过程。我在这里专门考虑 Windows,并且更喜欢使用 C++。

是否有详细说明该过程的工具或教程?

注意:我不是指扩展或“插件”。我指的是一个类似于 Flash 和 Adob​​e Reader 的插件来处理特定内容类型的插件。

4

4 回答 4

44

正如其他人指出的那样,这些浏览器的插件是使用NPAPI编写的。

注意:Firefox 和 Chrome 都将很快默认大多数插件点击播放,Chrome 计划完全淘汰 NPAPI。此时不鼓励对新项目使用 NPAPI。

NPAPI 入门资源:

然而,NPAPI 本身相对较低级,但有一些工具和框架可以帮助您:

  • FireBreath - 跨浏览器、跨平台的插件框架
  • Nixysa - 为 NPAPI 插件生成胶水代码
  • JUCE - 应用程序框架也提供插件支持
  • QtBrowserPlugin - 基于 Qt 的浏览器插件框架
于 2010-09-23T17:52:56.723 回答
5

我调查了 Georg 列出的一些框架,这是我得到的:

  1. 喷火。我认为它几乎是最好的。您可以在几天内使用 FireBreath 创建一个跨平台浏览器插件。我确实发现了一些缺点:它在 Windows 上不支持 utf-8 字符。例如:如果文件名中有汉字,则无法读取该文件的内容。我相信 boost/locale 可以解决这个问题。但 FireBreath 不包含 boost/locale。是的,您可以使用外部加速,但我花了几天时间进行配置和调整,仍然无法在 Windows 上编译。作者使用 cmake 来组织代码和子项目。而且他创建了很多 bat 或 shell 脚本和 cmake 宏,很难理解和配置。简而言之,如果你想要一些 FireBreath 目前不提供的东西,你会很倒霉,很难添加新功能。

  2. 尼西萨。我不认为它正在积极开发中。文档很差。从 wiki 页面的评论中:https ://code.google.com/p/nixysa/wiki/HelloWorldWalkThru我们可以知道用户根本无法获得帮助,并且在 Windows 上运行时遇到了麻烦

  3. 朱思。它不是专门用于创建浏览器插件的。它不支持 Linux。作者认为 NPAPI 即将消亡,因此他没有计划支持 Linux 或添加新功能。

  4. Qt浏览器插件。您无法在 QT 4.5 之后的文档中找到它。换句话说,它没有被维护(并从 Qt 5.0 中删除)

一旦我找到更多,我会更新这个答案。

更新:Chrome 放弃了NPAPI支持。我认为在未来用 C++ 编写插件会变得越来越难,因为缺乏浏览器的支持。

于 2013-03-20T15:51:41.010 回答
2

基于 Netscape 的浏览器、Chrome、Safari 和 Opera 等浏览器使用 NPAPI 插件系统,您可以在https://developer.mozilla.org/en/Pluginshttp://code.google.com/了解如何编写 NPAPI 插件铬/扩展/npapi.html

于 2010-04-16T01:48:59.233 回答
0

如果您了解 Qt,那么他们提供了一些可以更轻松地实现浏览器插件的类

于 2010-04-27T14:34:34.647 回答