Chrome浏览器扩展开发系列之十一:NPAPI插件的使用
2016-11-24 09:16
621 查看
在Chrome浏览器扩展中使用HTML和JavaScript非常容易,但是如何重用已有的非JavaScript遗留系统代码呢?答案是将NPAPI插件绑定到Chrome浏览器扩展,从而实现在Chrome浏览器扩展中通过JavaScript调用遗留系统代码。
注意,出于安全性的考虑,NPAPI已经于2015年开始被Chrome浏览器全面禁用。请使用PPAPI(Pepper Plugin API)开发新插件,详情请关注本文的后续内容。
下面介绍的内容仅供参考。
由于NPAPI插件中的代码拥有各种权限,Chrome浏览器无法设置任何限制,所以对于来自NPAPI插件的输入参数必选格外小心。由于NPAPI的安全风险,在将包含NPAPI插件的Chrome浏览器扩展发布到Chrome Web Store时,需要人工检查。
要在Chrome浏览器扩展中使用NPAPI插件,首先要在manifest.json文件中声明NPAPI插件的位置等信息如下:
{
...
"plugins": [
{ "path": "extension_plugin.dll" }//相对于manifest.json文件的相对路径
{ "public": true }//Web页面或content scripts是否可访问该NPAPI插件,
//默认false,表示只有Chrome浏览器扩展才能够访问
],
...
}
其次,需要在Chrome浏览器扩展中(public=false)或任何Web页面或content scripts中(public=true)的HTML文件中通过MIME类型加载NPAPI插件,示例如下:
<embed type="application/x-my-extension" id="pluginId">
<script>
var plugin = document.getElementById("pluginId");
var result = plugin.myPluginMethod(); //调用NPAPI插件中的方法
console.log("my plugin returned: " + result);
</script>
注意,替换上述页面中的x-my-extension为合适的MIME类型。
注意,出于安全性的考虑,NPAPI已经于2015年开始被Chrome浏览器全面禁用。请使用PPAPI(Pepper Plugin API)开发新插件,详情请关注本文的后续内容。
下面介绍的内容仅供参考。
由于NPAPI插件中的代码拥有各种权限,Chrome浏览器无法设置任何限制,所以对于来自NPAPI插件的输入参数必选格外小心。由于NPAPI的安全风险,在将包含NPAPI插件的Chrome浏览器扩展发布到Chrome Web Store时,需要人工检查。
要在Chrome浏览器扩展中使用NPAPI插件,首先要在manifest.json文件中声明NPAPI插件的位置等信息如下:
{
...
"plugins": [
{ "path": "extension_plugin.dll" }//相对于manifest.json文件的相对路径
{ "public": true }//Web页面或content scripts是否可访问该NPAPI插件,
//默认false,表示只有Chrome浏览器扩展才能够访问
],
...
}
其次,需要在Chrome浏览器扩展中(public=false)或任何Web页面或content scripts中(public=true)的HTML文件中通过MIME类型加载NPAPI插件,示例如下:
<embed type="application/x-my-extension" id="pluginId">
<script>
var plugin = document.getElementById("pluginId");
var result = plugin.myPluginMethod(); //调用NPAPI插件中的方法
console.log("my plugin returned: " + result);
</script>
注意,替换上述页面中的x-my-extension为合适的MIME类型。
相关文章推荐
- Chrome浏览器扩展开发系列之十一:NPAPI插件的使用
- NPAPI插件开发详细记录:实用功能(库的使用及多线程)
- QWidget在NPAPI插件开发中的使用
- Chrome浏览器扩展开发系列之十五:跨域访问的XMLHttpRequest对象
- 如何使用Android Studio开发Gradle插件系列教程(一)
- Chrome浏览器扩展开发系列之十九:扩展开发示例
- rcp(插件开发)org.eclipse.ui.propertyPages 扩展点使用
- Chrome浏览器扩展开发系列之十:桌面通知Notification
- Chrome浏览器扩展开发系列之十六:扩展中可用的Chrome浏览器API
- Chrome浏览器扩展开发系列之十二:Content Scripts
- 【REACT NATIVE 系列教程之十一】插件的安装、使用与更新(示例:REACT-NATIVE-TAB-NAVIGATOR)
- rcp(插件开发)org.eclipse.ui.menus扩展点使用
- 使用NPAPI开发Fireforx/Chrome插件
- 使用Linux C开发Nagios监控插件系列——监控MySQL状态的插件开发
- Chrome浏览器扩展开发系列之十七:扩展中可用的chrome.events API
- 燃烧的远征java(二)-开发环境:Eclipse插件系列——SQLExplorer插件的安装和使用
- Chrome浏览器扩展程序(插件)开发 一
- 使用JS开发IE、360浏览器、chrome浏览器插件
- Web开发接口测试工具——Postman插件的使用(chrome浏览器)
- 开发顺带NPAPI插件的Chrome扩展