Android浏览器插件开发(二)
2010-05-31 14:09:00 来源:WEB开发网//===================================
NPError NPP_GetValue(NPP instance,
NPPVariable variable,
void *ret_value);
浏览器通过此函数获取plugin对象的一些参数,需要根据NPPVariable variable进行不同的处理,NPPVariable的定义可以参照external/webkit/Webcore/bridge/npapi.h 和external/webkit/WebKit/android/plugins/android_npapi.h。
//===================================
NPError NPP_SetValue(NPP instance,
NPNVariable variable,
void *value);
浏览器通过此函数设置plugin对象的一些参数,和NPP_GetValue一样,需要根据NPPVariable variable进行不同的处理,NPPVariable的定义可以参照external/webkit/Webcore/bridge/npapi.h 和external/webkit/WebKit/android/plugins/android_npapi.h。
//===================================
NPError NPP_SetWindow(NPP instance,
NPWindow* window);
浏览器通过该函数告知plugin对象其窗口参数,主要就是的plugin对象所占画面的大小。
//===================================
NPError NPP_NewStream(NPP instance,
NPMIMEType type,
NPStream* stream,
NPBool seekable,
uint16* stype);
如果需要向plugin传输一些流数据,浏览器会通过此函数告知plugin即将要传输的流,在参数NPStream* stream中包含了流的url,以后需要对根据此url对NPP_Write传入的数据进行区分。
//===================================
void NPP_StreamAsFile(NPP instance,
NPStream* stream,
const char* fname);
如果浏览器要传输的是本地文件流,则会选择调用这个参数通知plugin流的信息。
//===================================
NPError NPP_DestroyStream(NPP instance,
NPStream* stream,
NPReason reason);
如果数据流传输结束或意外终止了,浏览器会调用此函数告知plugin注销这一数据流,可以通过NPReason reason判断数据流是否为正常结束。
//===================================
int32 NPP_WriteReady(NPP instance,
更多精彩
赞助商链接