使用NPAPI编写浏览器插件的调用本机上的程序
来源:互联网 发布:2016lpl选手数据 编辑:程序博客网 时间:2024/05/21 17:46
使用NPAPI编写浏览器插件的源码实例
code:http://download.csdn.net/detail/echoisland/3878906
用于种种原因,最近对制作浏览器(chrome,firefox)的插件非常感兴趣
搜了一下,讲的几乎全都是在讲的方法和API,找个简单可以运行的代码实例,还真是难!
不过最终还算幸运,终于找一个例子(http://geeklu.com/2010/10/getting-started-with-npapi-plugin/comment-page-1/).
很遗憾这个例子在我的linux机器上无法正常工作.所以我以此例子为基础写了个新例子,顺路我还写了个chrome的扩展作为演示.
关于NPAPI和chrome的扩展:
NPAPI:
[1] http://colonelpanic.net/2009/05/building-a-firefox-plugin-part-two/
[2] http://rintarou.dyndns.org/2010/04/23/scriptable-plugin-%E6%8E%A2%E8%A8%8E-20090408/
[3] http://blogold.chinaunix.net/u3/94039/showart_2004756.html
[4] https://developer.mozilla.org/en/Plugins
[5] 如何在chrome的扩展中使用:http://code.google.com/chrome/extensions/npapi.html
[6] 如何编写chrome的扩展:http://code.google.com/chrome/extensions/getstarted.html
插件的功能:
提供网页的javascript可以调用本机上的程序的能力,
所以本插件其实是很危险的,当然任何可以让网页调用本机上程序的插件都是很危险的.
不过这里只是一个演示插件编写的例子,看到的人不要惊慌哦...
关于源码的说明
npapi/npapi.h
npapi/npfunctions.h
npapi/npruntime.h
npapi/nptypes.h
直接来自:http://code.google.com/p/npapi-headers/
plugin_exec.c中的一些函数:
char*
NP_GetMIMEDescription()
return的字符串的格式必须是:"text/html:htm,html:HTML Document;application/x-texinfo:tex,texi,texinfo:TexInfo Document;"
详情请看[3]
NPError
NP_GetValue (void *future,
NPPVariable variable,
void *value)
一定要处理 variable为NPPVpluginNeedsXEmbed的case,否则chrome不会启用插件(firefox还算正常)
插件的演示方法:
$cp libplugin_exec.so ~/.mozilla/plugins
$firefox wkt.html
$google-chrome wkt.html ###在网页输入一个命令(必须运行后能跳出窗口,例如gnome-terminal,否则看不见效果),然后点"Run"按钮.
chrome扩展的演示方法:
扩展在chrome_extension目录下
加载扩展(加载方法看[6]的第4步),
然后页面上每个link的右键菜单会多出一个菜单项"save link to /tmp/link.log",
点击该菜单项后link的url就会被保存到/tmp/link.log
最后特别鸣谢我的室友雷国东,为我提供积极帮助.
本例源码地址:http://u.115.com/file/f23aeb448f
注意此例仅在debian sid/ubuntu10.10 编译/测试.
- 使用NPAPI编写浏览器插件的调用本机上的程序
- NPAPI插件开发学习:实现非IE浏览器的类似ActiveX的本地程序(插件)调用
- NPAPI——实现非IE浏览器的类似ActiveX的本地程序(插件)调用
- NPAPI——实现非IE浏览器的类似ActiveX的本地程序(插件)调用
- NPAPI——实现非IE浏览器的类似ActiveX的本地程序(插件)调用
- NPAPI——实现非IE浏览器的类似ActiveX的本地程序(插件)调用
- NPAPI——实现非IE浏览器的类似ActiveX的本地程序(插件)调用
- 使用NPAPI编写跨平台(Windows/Linux/Mac)跨浏览器(Chrome/Firefox/Safari)的插件
- 使用NPAPI编写跨平台(Windows/Linux/Mac)跨浏览器(Chrome/Firefox/Safari)的插件
- 基于npapi框架的浏览器插件开发
- 用NPAPI开发跨浏览器的插件,解决浏览器兼容问题
- Chrome浏览器扩展开发系列之十一:NPAPI插件的使用
- 基于NPAPI的跨浏览器的插件开发
- NPAPI插件开发学习:NPAPI的介绍
- NPAPI插件开发学习:NPAPI的介绍
- Windows版 NPAPI的浏览器插件开发教程
- 用NPAPI标准开发跨浏览器平台的插件
- 跨浏览器的插件开发框架,兼容ActiveX 和 NPAPI
- Android游戏引擎《Rokon》学习笔记六:一个使用Box2D的Rokon小例子:Rokon Donate
- Android游戏引擎《Rokon》:常见问题汇总(2010.11.15更新)
- Application Restarts(应用程序重新启动的次数)
- T-Sql自定义函数
- QQ游戏百万人同时在线服务器架构实现
- 使用NPAPI编写浏览器插件的调用本机上的程序
- php,java等语言识别验证码..
- T-Sql索引
- 新的篇章
- “递归”总结
- 对于今后道路的一点忠告
- T-Sql 索引创建
- vsFTPd 服务器初学者指南
- HDU4133 StrangeStandard 打表?