关闭

Chrome之plugin开发

1711人阅读 评论(2) 收藏 举报
分类:

前言

在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自带的一些函数库,找了一圈,倒是找到获取文件夹下文件的函数了,就是没找到获取盘符内容的函数。。。

0
0
查看评论

使用NPAPI编写跨平台(Windows/Linux/Mac)跨浏览器(Chrome/Firefox/Safari)的插件

最近项目中需要我编写跨平台的浏览器控件供JavaScript调用,经过几天折腾,我的插件已经能够很好的工作在Windows、Linux、Mac平台上的主流浏览器上,和JavaScript也可以很好的进行交互通知,下面就介绍一下主要的NPAPI插件开发流程和一些需要特别注意的地方。 下载NP...
  • yuan_lo
  • yuan_lo
  • 2016-06-01 10:21
  • 1054

PPAPI开发之路(二)在VS 2013上编译media_stream_video例子

一、例子源码路径 例子源码在你nacl_sdk安装目录下,比如我的是:E:\SDK\nacl_sdk\pepper_49\examples\api\media_stream_video 二、新建vs项目 1、新建一个名为media_stream_video的Win32项目,类型选DLL; ...
  • y601500359
  • y601500359
  • 2017-06-06 15:52
  • 2547

PPAPI开发之路(三)通过本地服务发布例子:media_stream_video的PPAPI

前言: 在进行下文之前,先介绍下发布PPAPI的几种格式 : Chrome PPAPI插件只能使用PPAPI接口的NativeClient(NaCl)方式编写, Native Client分别有三种embed类型:   1、“application/x-ppapi”:平台相关,唯一...
  • y601500359
  • y601500359
  • 2017-06-16 10:56
  • 1746

PPAPI-NaCl编译环境搭建,没VPN的群众也可用

网上搭建环境见http://blog.csdn.net/xoyojank/article/details/8142630,安装网上搭建环境一般会出现文件下载错误,是由于一些文件在外网,容易被墙,需要有VPN支持,经过摸索可采用如下方式搭建。 1 下载安装goagent(fang qiang),网上...
  • gufeng99
  • gufeng99
  • 2015-05-15 23:38
  • 2057

PPAPI开发之路(一)环境配置

前言:本文在已有博文的基础上根据自身需要进行一定的修改补充,感谢原文作者。 在这附上参考文章链接:http://www.cnblogs.com/snowyying/p/5458765.html 当前系统版本为 Windows 10 x64, Chrome 版本为 58.0.3029.11...
  • y601500359
  • y601500359
  • 2017-05-31 18:17
  • 3269

NPAPI和PPAPI开发

介绍NPAPI和PPAPI的具体开发过程!
  • lee353086
  • lee353086
  • 2015-10-21 13:11
  • 23860

PPAPI插件开发指南

转载请注明出处:http://www.cnblogs.com/fangkm/p/4401075.html 前言 插件一直是浏览器的重要组成部分,丰富浏览器的运行能力,实现一些HTML+JS实现不了本地应用(比如音视频、文件操作等)。早期广为熟知的是IE下的插件ActiveX,这是一项熟悉...
  • xtvja
  • xtvja
  • 2017-05-08 18:33
  • 1588

ppapi插件源码 google例子

  • 2016-09-27 19:13
  • 4.85MB
  • 下载

lhgdialog窗口的各种在线演示示例

jQuery方式和普通函数式 jQuery方式调用 J(function(){ J('#btn1').dialog({ id:'test1', html:'我是jQuery方式调用的窗口' }); }); 普通函数方式调用 ...
  • feng2375
  • feng2375
  • 2011-11-08 13:16
  • 37549

最新版本google插件/控件 PPAPI 例子

  • 2016-09-20 16:10
  • 97KB
  • 下载
    个人资料
    • 访问:231261次
    • 积分:3854
    • 等级:
    • 排名:第9840名
    • 原创:148篇
    • 转载:135篇
    • 译文:3篇
    • 评论:12条