Android 浏览器插件开发-插件库
转载请注明出处:http://blog.csdn.net/awebkit
android浏览器插件的核心是一个动态库,由c++写成。这里实现了NPAPI的接口。以BrowserPlugin为例,分析如下
先看 jni/main.cpp 。
NP_Initialize:初始化NPP/NPN函数。对于每一种插件来说,该函数只会被调用一次,而且是最先被调用的函数。
这个函数比较重要。它是浏览器和插件进行交互的关键。他的功能主要有三个:
1.得到浏览器定义的NPN_函数地址。
2.将插件定义的NPP_函数地址返回给浏览器。
3.得到Android提供的一些ANP_函数。
在这里,第三个功能初始化了一些全局变量,如gLogI等。
NP_Shutdown: 最后一个被调用的函数。
NP_GetMIMEDescription:获取MIME的函数。该MIME需要和网页插件object标签里面的type对应。
NP_GetValue: 获取插件名字和描述。
下面是插件实例的函数。
NPP_New:创建一个插件实例。根据参数创建不同的插件实例。这里的参数有两个:1. 插件绘制模型:Bitmap 和 Surface。 2. 插件类型。
如下示例会创建一个Background插件,插件的绘制模型为Surface
- <object type="application/x-testbrowserplugin" id="sample">
- <param name="DrawingModel" value="Surface" />
- <param name="PluginType" value="Background" />
- </object>
这里需要注意的是,BrowserPlugin 使用一个对象 PluginObject 记录插件信息。主要是在一个apk里面包含多个插件的实现,共用了很多代码。
NPP_Destroy:销毁插件实例。
NPP_SetWindow:设置窗口相关。
NPP_NewStream:有数据到达。
NPP_DestroyStream:销毁数据流。
NPP_WriteReady:数据流可写的字节数
NPP_Write:往数据流中写数据
NPP_StreamAsFile:
NPP_Print:打印相关。
NPP_HandleEvent:事件相关。
NPP_URLNotify:
NPP_GetValue: 非常重要的函数。获取插件信息。需要处理NPPVpluginScriptableNPObject,对应js使用插件。
NPP_SetValue:
Android 浏览器插件开发-插件库相关推荐
- android浏览器插件开发,Android浏览器插件开发.docx
Android浏览器插件开发 Android浏览器插件开发 需要了解的有以下几个方面的知识:1.插件是什么2.android浏览器怎样加载插件和创建实例3浏览器插件和脚本语言的交互4插件内部的数据流一 ...
- android 浏览器插件开发 - 插件库
转载请注明出处:http://blog.csdn.net/awebkit android浏览器插件的核心是一个动态库,由c++写成.这里实现了NPAPI的接口.以BrowserPlugin为例,分析如 ...
- Android浏览器插件开发
最近做android浏览器插件学到一些东西和大家分享: 需要了解的有以下几个方面的知识: 1.插件是什么 2.android浏览器怎样加载插件和创建实例 3浏览器插件和脚本语言的交互 4插件内部的数据 ...
- android浏览器插件开发,【转】Chrome扩展开发自己的浏览器插件
本帖最后由 火菩萨 于 2017-6-25 03:24 编辑 不知道分类对不对 不对请管理大大移动一下 wKioL1fiEXCQ9nkKAAEZAaNTxUk841.jpg-wh_651x-s_429 ...
- Chrome插件-浏览器插件开发-插件安装-插件调试-概述
文章目录 1.简述 2.弹出界面 3.背景界面 4.插件安装 5.调试 6.打包 7.作者答疑 现今浏览器可以实现大部分数据信息的展示,提供给读者进行浏览,开发浏览器插件,可以有效实现对获取的数据 ...
- Android 浏览器插件开发
插件机制是任何一个应用都应该采取的机制,只不过看产品需求是否有用. http://www.cnblogs.com/hibraincol/archive/2011/08/23/2150629.html ...
- android浏览器插件介绍
一 浏览器插件介绍: 1.1 概述 浏览插件本质是一个功能模块,是浏览器功能的一种扩充.其载体是dll或则so文件.它依附浏览器完成某一特定的功能.插件需要实现浏览器规定的一些函数,这些函数叫N ...
- android stuido 插件,3分钟教会你Android Studio插件开发!
作者:在寻找雪见的景天 由于我英语很烂,写代码的时候需要用英文命名,有些单词不知道,就只能切换到浏览器打开网页搜索,再拿到英文单词.这样每次都要切换出去,很麻烦,于是,就想着开发一个Android s ...
- Android Studio 插件开发详解三:翻译插件实战
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78113868 本文出自[赵彦军的博客] 系列目录 Android Gradle使用 ...
最新文章
- java更新blob字段的值_对一个BLOB字段如何用update 来更新?? (100分)
- 网络地址转换(PAT)
- 如何把 Word 中的表格快速插入 LaTeX?
- python标记跳转_Geany的跳转到标记定义“功能如何使用
- leetcode 210. Course Schedule II | 210. 课程表 II(Java)
- feign调用多个服务_Spring Cloud 快速入门系列之feign–微服务之间的调用
- 软件测试 学习之路 MYSQL安装
- 适用于SQL Server的DBATools PowerShell模块
- python 从列表中随机选择_使用条件Python从列表中随机选择
- python开发好吗_用Python开发应用好用吗?
- pc版本Line电脑多开软件,多开分身软件
- 130多个免费接口全部开放,涵盖天气数据、环境数据、旅游景点数据、位置数据、雷达、云图等等,可在线直接提供服务,免费的服务接口
- WPF 做的天干地支 乾坤八卦 罗盘
- 玩单片机需要学数电、模电吗?
- 层次分析法原理及应用案例
- 我的第一款(ban)产(cheng)品(pin)——铛铛打卡
- 股指期货、股指期权与股票有何不同?
- matlab级数求和阶乘,(阶乘)数列求和 - 数学 - 小木虫 - 学术 科研 互动社区
- 能真正帮你实现沟通表达能力提升的书籍推荐:《沟通与说服必读12篇》
- RTC业务中的视频编解码引擎构建