磕磕碰碰的Chrome之plugin开发
前言
在Firefox下可用的npapi插件,在chrome下调用时遇到问题,于是尝试研究chrome下的ppapi插件,一路上真是磕磕碰碰,波折不断啊。
阶段一、复用npapi
尝试将npapi直接用在chrome中,结果在chrome://plugins页下能看到npapi的插件,调试时看到插件对象被创建了,但是无法调用插件对象的函数。
之后各种尝试未果,网上一搜貌似2013年的时候chrome就开始逐渐不支持npapi了,于是只有尝试ppapi。。。
阶段二、创建ppapi
建简单的ppapi dll项目,运行命令chrome --register-pepper-plugins="G:\\example.dll#ppexample##1.0.0;a
pplication/x-ppapi-example" file:///G:/web/index.html打开chrome,插件可用,可惜直接打开chrome,插件不可用,且在chrome://plugins页下找不到插件。
虽然在官方说明中看到了这个命令行是调试用的,但是找了一圈也没找到发布的命令,郁闷坏了。。。
然后各种尝试,在chrome://plugins页下找已存在的PPAPI插件,然后在注册表中找可能注册的位置,结果搜索一圈都没找到!!!
最后看到在网上看到有老外说发布不能直接发布ppapi,要发布成NaCl!不知道为啥还能在chrome://plugins页下找已存在的PPAPI插件呢?
阶段三、NaCl环境搭建
1.越狱
不越狱你休想访问google的资源,这点真让人郁闷:(
2.下载
在https://developer.chrome.com/native-client上下载sdk并解压。
3.更新
cmd中进入sdk目录下,输入naclsdk list执行完后再输入naclsdk update,偶这个版本都到pepper37了。
4.下载并安装python
注意下载python2.7,而不要下载3.*
5.配置参数
进入系统环境变量
Path中加入python安装目录如"C:\Python27;"
新建变量NACL_SDK_ROOT,值为nacl_sdk的pepper路径如"C:\nacl_sdk\pepper_37\"
6.编译项目
cmd下进入C:\nacl_sdk\pepper_37\getting_started下,输入make可进行编译,输入make serve可编译并启动python服务器,
7.配置chrome
进入chrome的chrome://flags/下启用Native Client。
进入开发者工具下面点击右边的设置按钮,在General Tab下选择Disable cache。
8.查看效果
需要注意的是nacl只能在服务器环境下查看效果,也就是说你没法像别的浏览器一样,直接输入,file:\\\c:\index.html打开页面就能看到效果,而必须在服务器环境下查看效果。
按nacl sdk的设定,直接用命令make serve就能启动服务器,然后输入http://localhost:5103查看效果
我的机子环境比较郁闷,每次cmd都显示成功启动了服务器,但是只要输入http://localhost:5103,都提示httpd.py一堆错误,估计是我的python版本和httpd.py不兼容吧,因为我对python不大熟悉,我也懒得折腾这个问题了,直接把build好的东西放到一个服务器下,就能看效果了。
走的这一步就算是nacl新手上路了,但是这个还没完,更郁闷的是下一阶段
阶段四、尝试用windows函数
因为我想要做的应用,是想能够访问windows系统下的盘符的,在npapi中,我调用了FindFirstVolume等windows函数。郁闷的是将这函数转移到nacl中又是遇到重重问题:
1.先是make的时候提示没有找到定义,这个好办,在makefile中用-I将vs的头文件路径都给加上
2.接着再make,各种错误一大堆,无法识别的int64__等等类型、Only Win32 targets supported!等,找了一圈也没找到解决的办法。可能可以通过-target和-arch参数的配置来解决,但是没找到正确的配置方法
3.接着只有尝试找nacl_sdk自带的一些函数库,找了一圈,倒是找到获取文件夹下文件的函数了,就是没找到获取盘符内容的函数。。。
4.想找不用windows函数的替代函数,可惜没找到:(
5.爬上博客园来发个帖子,看有没有人有办法!!!
转载于:https://www.cnblogs.com/studynote/p/4097578.html
磕磕碰碰的Chrome之plugin开发相关推荐
- CRM中Plugin开发如何将功能放入多个模块
近期做CRM的Plugin开发,发现Plugin中的功能必须全部放在一个DLL里,感觉不爽,如果我要用的功能在别人提供的DLL里,或有些功能需要在多个地方使用岂不是很难过? 用了VS2012的Dyna ...
- 基于Chrome的扩展开发(二)
Chrome启动时默认的效果如下图所示,有"most visited","Searches","Recent bookmarks",&quo ...
- webstorm+nodejs+JetBrains IDE Support+chrome打造前端开发神器
#webstorm+nodejs+JetBrains IDE Support+chrome打造前端开发神器 -- 工欲善其事 必先利其器##各工具介绍 `webstorm`是**JetBrains** ...
- Flutter Plugin开发流程
这篇文章主要介绍了Flutter Plugin开发流程,包括如何利用Android Studio开发以及发布等. 本文主要给大家介绍如何开发Flutter Plugin中Android的部分.有关Fl ...
- Chrome(谷歌浏览器) 程序开发32个经常使用插件
Chrome(谷歌浏览器) 程序开发32个经常使用插件 谷歌浏览器(Chrome)在2008年底才公布.但非常快它已成为火狐(Firefox)有力竞争对手. 之前.由于有大量的附加组件的支持,所以火 ...
- Chrome(谷歌浏览器) 程序开发32个常用插件
Chrome(谷歌浏览器) 程序开发32个常用插件 谷歌浏览器(Chrome)在2008年底才发布,但很快它已成为火狐(Firefox)有力竞争对手.之前,因为有大量的附加组件的支持,所以火 狐(Fi ...
- 通用流量录制回放工具 jvm-sandbox-repeater 尝鲜 (三)—— repeater plugin 开发
本文作者陈恒捷是TesterHome社区主编,第十届MTSC大会上海站-开源专场出品人.先后在PP助手.PPmoney.荔枝等公司从事测试效能提升相关工作,在测试技术及效率提升方面有丰富的经验积累. ...
- 谷歌浏览器Chrome插件扩展开发教程
下文是我看到的一篇很好的Chrome扩展开发攻略,感觉很有价值,内容详尽,排版精美,遂转载. 原文由小茗同学发表于小茗同学的博客园:[干货]Chrome插件(扩展)开发全攻略 1. 写在前面 我花了将 ...
- chrome扩展(插件)开发(五)监听网页的ajax请求
我的插件想要监听网页发出的请求, 然后根据请求的状态来做具体的操作. 实现的方法主要有三种方式 google官方提供的api chrome.webRequest 这里在插件中监听宿主页面的ajax 重 ...
最新文章
- struts2中struts.xml和web.xml文件解析及工作原理
- 报告显示:至2020年,paas在云端的普及率将达32%
- 在Windows下使用webpack入门
- SAPMM模块配置目录
- fileinputstream resources 读取文件_压缩20M文件从30秒到1秒,包教包会
- android DatePicker
- elementui table渲染不出来_测试开发不会前端?ElementUI你需要了解一下
- 漫步微积分三十六——曲面的面积
- 考勤排班_考勤管理系统VS传统考勤排班优劣如何?
- nrf52840蓝牙协议栈主机BLE串口
- 美团饿了吗外卖小程序CPS红包推广源码+可编译H5
- 2019新版c智播客h马程序员H5全栈工程师培训项目实战
- noi linux,NOI Linux使用教程(基础讲解)
- 计算机进制之间的转换(2进制、10进制、8进制、16进制)
- C#,欧拉数(Eulerian Number)的算法与源代码
- python tkinter 随机抽奖程序
- Game Programming with DirectX -- 08[Mesh]
- C#学习记录——软件工程师必备素养与技能
- Android的媒体播放器——简易视频播放器(详解)
- H264编码- 码率控制 RQ 模型参数推导过程以及JM代码分析