WEB开发网
开发学院手机开发Android 开发 Android浏览器插件开发(二) 阅读

Android浏览器插件开发(二)

 2010-05-31 14:09:00 来源:WEB开发网   
核心提示:在写Android的browser plugin的时候,需要实现一系列的NPP函数,Android浏览器插件开发(二),关于函数的具体说明还是推荐看一看这个网页:https://developer.mozilla.org/en/Gecko_Plugin_API_Reference下面说一说在这些函数中需要完成的任务//

在写Android的browser plugin的时候,需要实现一系列的NPP函数,关于函数的具体说明还是推荐看一看这个网页:https://developer.mozilla.org/en/Gecko_Plugin_API_Reference

下面说一说在这些函数中需要完成的任务

//===================================

NPError NP_Initialize(NPNetscapeFuncs*,

NPPluginFuncs*,

JNIEnv *java_environment,

jobject application_context);

Plugin初始化函数,浏览器会通过参数传进一个浏览器侧的NPAPI函数列表(NPN函数列表),plugin需要在这里实现全局参数的初始化,并返回plugin侧的NPAPI函数列表(NPP函数列表)。Android的Plugin可以通过NPN_GetValue获取浏览器参数以及 Android提供的各种操作接口(ANP Inerface),Android提供的操作接口可以查看源代码的这一部分:external/webkit/WebKit/android /plugins。Android的NP_Initialize还提供了上层的java运行环境,可用于实现与java侧的交互。

//===================================

void NP_Shutdown();

关闭Plugin,浏览器在销毁了所有plugin实例以后就会调用这个函数,可以在这里释放一些全局的资源。

//===================================

NPError NPP_New(NPMIMEType pluginType,

NPP instance, uint16 mode,

int16 argc, char *argn[],

char *argv[], NPSavedData *saved);

新建一个实例,浏览器每创建一个plugin的实例就会调用一次这个函数。在这里主要就是根据传进的参数列表进行实例的初始化,建立新的Plugin对象,并通过NPN_SetValue告知浏览器plugin对象的一些特性,其中包括了plugin对象能处理的事件(触控事件和按键事件),以及 plugin的渲染模式(bitmap模式或surface模式)。

//===================================

NPError NPP_Destroy(NPP instance,

NPSavedData** save);

当浏览器需要销毁一个plugin实例的时候调用,要在这里完成这对应实例的资源释放。

//===================================

NPError NP_GetValue(NPP instance,

NPPVariable variable,

void *ret_value);

浏览器通过此函数获取plugin的一些全局参数,主要是plugin的名称和描述。

1 2 3  下一页

Tags:Android 浏览器 插件

编辑录入:coldstar [复制链接] [打 印]
赞助商链接