火狐浏览器插件

一个插件的生命周期,完全取决于调用他的网页。
所有的插件特有的函数都有“NPP”前缀,所有的浏览器特有的函数都有“NPN”前缀。还有一组函数(如NP_Initialize和NP_shutdown)是直接库入口,和任何特定的插件实例无关。
当用户离开实例的页面或关闭了这个窗体,则这个插件的实例被删除;调用NPP_Destroy函数来确保插件实例被删除。
当最后一个插件实例被删除后,插件的代码会从内存中被卸载。

做插件开发时,若文件在服务器时,先将文件下载到本地,由插件去读取,比直接将文件下载到内存,占用空间小。

NPN_GetURLNotify是线程异步,故在下载过程中,要考虑下载失败等异常处理体系。
NP_GetEntryPoints:插件加载之后,立即调用该接口,用于浏览器获取所有可能需要调用的API函数的指针。
NP_Initialize:为插件提供全局初始化。
NP_Shutdown:为插件提供全局反初始化。
NPP_New:创建插件实例。
NPP_Destroy:删除插件实例。
NPP_SetWindow:窗口创建、移动、改变大小或销毁时调用。
NPP_NewStream:通知插件实例有新的数据流。
NPP_WriteReady:确定插件是否准备好接收数据(以及其准备接收的最大字节数)
NPP_Write:调用以将数据读入插件this might be better named “NPP_DataArrived”
NPP_DestroyStream:通知插件实例数据流将要关闭或销毁
NPP_StreamAsFile:为创建流数据提供本地文件名
NPP_Print:为嵌入或全屏插件请求平台特定的打印操作
NPP_URLNotify:通知插件已完成URL请求
NPP_GetValue:调用以查询插件信息(还用来获取NPObject/Scriptable 插件的实例)
NPP_SetValue:这是用来为浏览器提供插件变量信息的
NPP_HandleEvent:事件处理函数,对windowed(窗口)的插件只在MAC操作系统上可用,对于winless的插件所有平台都可用

windows插件初始化调用顺序:NP_GetEntryPoints->NP_Initialize->NPP_New->NPP_SetWindow->NPP_GetValue

下载文件的执行API顺序为:NPN_GetURLNotify()->NPP_NewStream()->NPP_WriteReady()->NPP_Write()->NPP_StreamAsFile()->NPP_DestroyStream()->NPP_URLNotify();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值