开发附带NPAPI插件的Chrome扩展.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
开发附带NPAPI插件的Chrome扩展

开发附带NPAPI插件的Chrome扩展 1 NPAPI插件 2 1.1 NPAPI简介 2 1.2 准备工作 2 1.3 创建插件 2 1.3.1 创建Win32 DLL工程 2 1.3.2 引入NPAPI库 2 1.3.3 添加宏定义_X86_ 2 1.3.4 添加模块定义文件(.def文件) 2 1.3.5 编辑stdafx.h文件 3 1.3.6 添加基础框架文件 3 1.3.7 编辑sample.cpp文件 3 1.3.8 编辑sample.h文件 4 1.3.9 添加Version资源 8 1.3.10 编译输出 8 1.4 需要注意的问题 8 1.4.1 库文件的捆绑 8 1.4.2 谨记MIMEType 8 1.4.3 无效的NPN_CreateObject? 8 2 Chrome扩展 9 2.1 简介 9 2.2 开始编写 9 2.2.1 准备一个图标文件(.png) 9 2.2.2 准备NPAPI插件(.dll) 9 2.2.3 编写manifest.json 9 2.2.4 编写background.html 10 2.2.5 编写background.js 10 2.3 安装与测试 10 2.4 发布 10 3 参考资料 11 NPAPI插件 NPAPI简介 NPAPI(Netscape Plugin Application Programming Interface,网景插件应用程序接口)是网景公司当年制定的开发基于网景浏览器,用于在浏览器中执行外部应用程序的通用接口。该接口基于插件机制,制定了一系列的标准和API,因此也有NPAPI插件一说。同期的微软,也在IE中支持ActiveX为浏览器插件,不得不承认微软在这一点上,把浏览器和OS结合的更为紧密,这也可能是当年微软能够击溃网景的原因之一。 但网景的影响深远,除了微软特立独行之外,其他浏览器开发厂商奇迹般的都一致采用了NPAPI来对浏览器进行扩展(这包括后来从灰烬中重生的FireFox及新生的Chrome;当然,Chrome在不久前时间已经在尝试抛弃NPAPI了)。因此,在目前来看NPAPI几乎是IE之外的浏览器插件开发的统一标准。 准备工作 根据参考资料,从/pub//firefox/releases/4.0.1/source/中下载了firefox早期的源代码,并从中抠出了NPAPI相关的部分(恩,资料上说的不够详细)。 解压源代码,把modules\plugin\base\public和modules\plugin\sdk\samples\include两个目录中的文件复制出来放在一起(我创建了D:\npapi,把文件都放这了)。 另外,资料里提到的三个文件在modules\plugin\sdk\samples\common下(记住位置,待会会用到)。 创建插件 顺便提一下,本文以VS2003为范例。 插件实现的功能:对浏览器(贴切点说是对javascript引擎)暴露对象Sample,而Sample又提供了一个sayHello的方法。这样一来,我们可以在浏览器中,使用javascript通过Sample.sayHello();来调用插件所提供的功能。 创建Win32 DLL工程 引入NPAPI库 在工程属性中,添加“附加包含目录”:D:\npapi(之前抠出来的部分)。 添加宏定义_X86_ 添加模块定义文件(.def文件) 创建sample.def文件,内容为: LIBRARY sample EXPORTS NP_GetEntryPoints @1 NP_Initialize @2 NP_Shutdown @3 编辑stdafx.h文件 增加tchar头文件的引入: #include tchar.h 增加NPAPI头文件的引入: // Mozilla-API #include npfunctions.h #include npruntime.h #include npruntime.h 添加基础框架文件 找到np_entry.cpp、npn_gate.cpp和npp_gate.cpp,复制到工程目录下,并添加到工程(恩恩,位置在modules\plugin\sdk\samples\common)。 在编辑器里分别打开着三个文件,并在文件头部加入: #include stdafx.h 编辑sample.cpp文件 将文件代码修改为: #include stdafx.h #include sample.h NPError NS_PluginInitialize() { return NPERR_NO_ERROR; } void NS_PluginShutdown() { } nsPluginInstanceBase * NS

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档