前言

在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.爬上博客园来发个帖子,看有没有人有办法!!!

磕磕碰碰的Chrome之plugin开发的更多相关文章

  1. [Cordova] Plugin开发架构

    [Cordova] Plugin开发架构 问题情景 开发Cordova Plugin的时候,侦错Native Code是一件让人困扰的事情,因为Cordova所提供的错误讯息并没有那么的完整.常常需要 ...

  2. [Cordova] Plugin开发入门

    [Cordova] Plugin开发入门 Overview Cordova的设计概念,是在APP上透过Web控件来呈现Web页面,让Web开发人员可以操作熟悉的语言.工具来开发APP.使用Web页面来 ...

  3. Chrome浏览器扩展开发系列之十四

    Chrome浏览器扩展开发系列之十四:本地消息机制Native messaging 时间:2015-10-08 16:17:59      阅读:1361      评论:0      收藏:0    ...

  4. MS CRM 2011的自定义和开发(11)——插件(plugin)开发(三)

    http://www.cnblogs.com/StoneGarden/archive/2012/02/06/2340661.html MS CRM 2011的自定义和开发(11)——插件(plugin ...

  5. MS CRM 2011的自定义和开发(11)——插件(plugin)开发(四)

    http://www.cnblogs.com/StoneGarden/archive/2012/02/08/2343294.html MS CRM 2011的自定义和开发(11)——插件(plugin ...

  6. MS CRM 2011的自定义和开发(11)——插件(plugin)开发(一)

    http://www.cnblogs.com/StoneGarden/archive/2012/02/02/2336147.html MS CRM 2011的自定义和开发(11)——插件(plugin ...

  7. MS CRM 2011的自定义和开发(11)——插件(plugin)开发(二)

    http://www.cnblogs.com/StoneGarden/archive/2012/02/06/2339490.html MS CRM 2011的自定义和开发(11)——插件(plugin ...

  8. webstorm+nodejs+JetBrains IDE Support+chrome打造前端开发神器

    #webstorm+nodejs+JetBrains IDE Support+chrome打造前端开发神器 -- 工欲善其事 必先利其器 ##各工具介绍 `webstorm`是**JetBrains* ...

  9. EXT.NET高效开发(三)——使用Chrome浏览器的开发人员工具

    这篇帖子老少皆宜,不分男女,不分种族,不分职业.俗话说:“磨刀不误砍柴工”.掌握一些开发工具的使用,对自己帮助是很大的(无论是用于分析问题,还是提高生产力).本篇就讲述如何利用Chrome浏览器(这里 ...

随机推荐

  1. leetcode23 多个拍好序的链表进行归并排序 (java版本)

    题目: Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexit ...

  2. PostgreSQL Partitions

    why we need partitions The first and most demanding reason to use partitions in a database is to inc ...

  3. PostgreSQL pg_dump pg_dumpall and restore

    pg_dump dumps a database as a text file or to other formats. Usage: pg_dump [OPTION]... [DBNAME] Gen ...

  4. PHP Parse Error: syntax error, unexpected $end 错误的解决办

    可以在php.ini中设置short_open_tag = On 第一步,登录到sql命令行   第二步,使用sql语句修改root密码 使用sql语句改密码时一定要选中数据库 .使用 use mys ...

  5. 2-sat按照最小字典序输出可行解(hdu1814)

    Peaceful Commission Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  6. 【Origin】 破阵子-未可留 征人调

    几朝岁月,悠悠,容颜改,两鬓衰,可恨荣光不留! 一生事,忧心畔,可怜惶惶,不拿年岁当缠头: 只把扑朔往往,人生几回首: 等闲识得料峭处,一腔泪流: 曾记否,三十功名尘与土,不可解忧愁: 青春换得明日花 ...

  7. ASPNET服务端控件练习(一个机试题)

    简单记录: 模糊查询的select语句的拼写 public List<Model.Student> GetWhereStudent(string name, string sub, str ...

  8. sort 树 hash 排序

    STL 中 sort 函数用法简介 做 ACM 题的时候,排序是一种经常要用到的操作.如果每次都自己写个冒泡之类的 O(n^2) 排序,不但程序容易超时,而且浪费宝贵的比赛时间,还很有可能写错. ST ...

  9. 夺命雷公狗---DEDECMS----29dedecms热门大片的完成

    我们要完成的是热门大片的显示,如下所示: 热门大片,这一般都是按照浏览量高的放前面的而已,我们先来查查手册,如下所示: 这里发现我们的arclist标签里面的orderby和orderway完全可以实 ...

  10. Android之自定义生成彩色二维码

    先导个zxing.jar包 下面是xml布局 activity_main.xml <RelativeLayout xmlns:android="http://schemas.andro ...