首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何编写浏览器插件?

如何编写浏览器插件?
EN

Stack Overflow用户
提问于 2010-04-15 21:19:46
回答 4查看 33.6K关注 0票数 37

我对为Chrome、Safari和Opera等浏览器编写浏览器插件的过程感到好奇。我在这里特别想到Windows,我更喜欢使用C++。

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

注意事项:我指的不是扩展或‘加载项’。我指的是一个插件,类似于Flash和Adobe如何使用插件来处理特定的内容类型。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-09-23 17:52:56

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

注意:火狐和Chrome都将默认大多数插件http://en.wikipedia.org/wiki/NPAPI,Chrome计划使用http://blog.chromium.org/2013/09/saying-goodbye-to-our-old-friend-npapi.html。此时,对于新项目的NPAPI是不鼓励的。

开始使用NPAPI的资源:

  • MDC插件段
  • 三部分NPAPI教程
  • NPAPI中的内存管理
  • npsimple - NPAPI插件的"Hello“
  • npapi-sdk -规范NPAPI报头的源
  • Mozillas测试插件 --用于查找特定的NPAPI用例。

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

  • FireBreath -跨浏览器、跨平台框架-插件工作
  • 尼西萨 -为NPAPI插件生成胶水代码
  • 朱斯 -应用程序框架还提供对插件的支持
  • 基于QtBrowserPlugin - Qt的浏览器插件框架
票数 44
EN

Stack Overflow用户

发布于 2013-03-20 15:51:41

我研究了Georg列出的一些框架,下面是我得到的:

  1. FireBreath。我认为这几乎是最好的了。您可以在几天内用FireBreath创建一个跨平台的浏览器插件。我确实发现了一些缺点:它不支持Windows上的utf-8字符。例如:如果文件名中有中文字符,则无法读取该文件的内容。我相信boost/locale可以解决这个问题。但是FireBreath不包含boost/locale。是的,您可以使用外部boost,但是我花了几天的时间来配置和调整,仍然无法在Windows上编译它。作者使用cmake对代码和子项目进行组织。他创建了很多bat或shell脚本和cmake宏,很难理解和配置。总之,如果你想要FireBreath目前没有提供的东西,你会有一个坏运气,这是很难添加新的功能。
  2. 尼西萨。我不认为它正在积极发展。文件很差。从wiki页面上的评论:https://code.google.com/p/nixysa/wiki/HelloWorldWalkThru,我们可以知道用户根本得不到帮助,并且在Windows上运行有困难
  3. 朱斯。它不是专门用于创建浏览器插件。它不支持Linux。作者认为NPAPI即将消亡,因此他没有计划支持Linux或添加新特性。
  4. QtBrowserPlugin。您在QT4.5之后的文档中找不到它。换句话说,它没有被维护(并且从QT5.0中删除)

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

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

票数 5
EN

Stack Overflow用户

发布于 2010-04-16 01:48:59

浏览器如基于Netscape的浏览器、Chrome、Safari和Opera使用NPAPI插件系统,您可以学习如何在https://developer.mozilla.org/en/Pluginshttp://code.google.com/chrome/extensions/npapi.html中编写NPAPI插件。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2649056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档