android 浏览器插件开发 - 插件库
2014-05-25 22:52
267 查看
转载请注明出处: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
[html] view
plaincopy
<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浏览器插件的核心是一个动态库,由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
[html] view
plaincopy
<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浏览器插件开发-Log
- android 浏览器插件开发 - 流程(1)
- Android2.2浏览器插件的surface加载过程的改变  -  棒槌网@Android开发论坛 - Powered by phpwind
- android 浏览器插件开发 - 插件库
- Android 浏览器插件开发-插件库
- Android 浏览器插件开发
- Android浏览器插件开发(二)
- android 浏览器插件开发 - 流程(1)
- Android浏览器插件开发
- android 浏览器插件开发 - HelloPlugin
- android 浏览器插件开发 - 流程(2)
- Android浏览器插件开发
- android 浏览器插件开发 - Log
- Android浏览器插件开发
- android 浏览器插件开发 - 流程(1)
- android 浏览器插件开发 - HelloPlugin
- android 浏览器插件开发 - Log
- android 浏览器插件开发