转载请注明出处: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:

TBD

android 浏览器插件开发 - 插件库相关推荐

  1. Android 浏览器插件开发-插件库

    2011-08-24 18:04 转载请注明出处:http://blog.csdn.net/awebkit android浏览器插件的核心是一个动态库,由c++写成.这里实现了NPAPI的接口.以Br ...

  2. android浏览器插件开发,Android浏览器插件开发.docx

    Android浏览器插件开发 Android浏览器插件开发 需要了解的有以下几个方面的知识:1.插件是什么2.android浏览器怎样加载插件和创建实例3浏览器插件和脚本语言的交互4插件内部的数据流一 ...

  3. Android浏览器插件开发

    最近做android浏览器插件学到一些东西和大家分享: 需要了解的有以下几个方面的知识: 1.插件是什么 2.android浏览器怎样加载插件和创建实例 3浏览器插件和脚本语言的交互 4插件内部的数据 ...

  4. android浏览器插件开发,【转】Chrome扩展开发自己的浏览器插件

    本帖最后由 火菩萨 于 2017-6-25 03:24 编辑 不知道分类对不对 不对请管理大大移动一下 wKioL1fiEXCQ9nkKAAEZAaNTxUk841.jpg-wh_651x-s_429 ...

  5. Chrome插件-浏览器插件开发-插件安装-插件调试-概述

    文章目录 1.简述 2.弹出界面 3.背景界面 4.插件安装 5.调试 6.打包 7.作者答疑   现今浏览器可以实现大部分数据信息的展示,提供给读者进行浏览,开发浏览器插件,可以有效实现对获取的数据 ...

  6. Android 浏览器插件开发

    插件机制是任何一个应用都应该采取的机制,只不过看产品需求是否有用. http://www.cnblogs.com/hibraincol/archive/2011/08/23/2150629.html ...

  7. android浏览器插件介绍

    一 浏览器插件介绍:    1.1 概述 浏览插件本质是一个功能模块,是浏览器功能的一种扩充.其载体是dll或则so文件.它依附浏览器完成某一特定的功能.插件需要实现浏览器规定的一些函数,这些函数叫N ...

  8. android stuido 插件,3分钟教会你Android Studio插件开发!

    作者:在寻找雪见的景天 由于我英语很烂,写代码的时候需要用英文命名,有些单词不知道,就只能切换到浏览器打开网页搜索,再拿到英文单词.这样每次都要切换出去,很麻烦,于是,就想着开发一个Android s ...

  9. Android Studio 插件开发详解三:翻译插件实战

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78113868 本文出自[赵彦军的博客] 系列目录 Android Gradle使用 ...

最新文章

  1. JavaScript中“ =gt;”(等于或大于的箭头)的含义是什么?
  2. pytorch tensor 筛选排除
  3. IIS上.Net 扩展中进行恢复
  4. java 判断一个字符串是否由数字组成的_Java中怎样判断一个字符串是否是数字
  5. 《企业软件交付:敏捷与高效管理精要》——3.4 企业软件交付的软件工厂方法...
  6. LeetCode 828. 统计子串中的唯一字符(中心扩展)
  7. 计算机发展英语思维导图,怎样画出英语课文总结思维导图
  8. js使用const的好处_let和const命令
  9. Mysql Linux安装详细步骤
  10. H5 data-* 属性,设置获取方法总结
  11. 黑客都使用什么编程语言?
  12. 教材寻找 下载系列1
  13. 计算机视觉与图形学-神经渲染专题-神经体渲染:实时渲染KiloNeRF
  14. 一个完整的HTTP请求过程详细
  15. 怎么清除DNS缓存?
  16. Android12 apk安装失败 安装包异常 安装包大小显示1k
  17. learn2reg-配准介绍
  18. java数组找出重复元素及次数_Java查找数组重复元素,并打印重复元素、重复次数、重复元素位置...
  19. 给定一个 32 位有符号整数,将整数中的数字进行反转。
  20. 那些可盐可甜的AI声音,可能都是出自于这家公司

热门文章

  1. php菲波那切数列,php实现菲波那切数列和杨辉三角
  2. FPGA NCO+FIRip核的使用及仿真(加法)(quartusii 13.1+modelsimse 10.5)
  3. 20.2.25排位赛B
  4. 目前国内跳伞的一些相关信息
  5. php变量名可以是数字 字母或下划线开头,变量的命名必须以字母或下划线开头,中间可以是数字、字母或下划线...
  6. IT学生在校学习六层楼
  7. Webservice调用错误(unexpected element (uri:, local:billType))解决
  8. argparse:Python命令行传参
  9. 使用pinyin4j获取汉字拼音首字母或全拼
  10. 名字、手机号、身份证中间 ****的用法