Android 瀏覽器外掛程式開發 外掛程式庫

2021-06-20 07:02:16 字數 1467 閱讀 8166

2011-08-24 18:04

android瀏覽器外掛程式的核心是乙個動態庫,由c++寫成。這裡實現了npapi的介面。以browserplugin為例,分析如下

先看 jni/main.cpp 。

np_initialize:初始化np

p/npn函式。對於每一種外掛程式來說,該函式只會被呼叫一次,而且是最先被呼叫的函式。

這個函式比較重要。它是瀏覽器和外掛程式進行互動的關鍵。他的功能主要有三個:

1.得到瀏覽器定義的npn_函式位址。

2.將外掛程式定義的npp_函式位址返回給瀏覽器。

3.得到android提供的一些anp_函式。

在這裡,第三個功能初始化了一些全域性變數,如glogi等。

np_shutdown: 最後乙個被呼叫的函式。

np_getmimedescription:獲取mime的函式。該mime需要和網頁外掛程式object標籤裡面的type對應。

np_getvalue: 獲取外掛程式名字和描述。

下面是外掛程式例項的函式。

npp_new:建立乙個外掛程式例項。根據引數建立不同的外掛程式例項。這裡的引數有兩個:1. 外掛程式繪製模型:bitmap 和 su***ce。 2. 外掛程式型別。

如下示例會建立乙個background外掛程式,外掛程式的繪製模型為su***ce

[html]view plain

copy

<

object

type=id

="sample"

>

<

param

name

="drawingmodel"

value

="su***ce"

/>

<

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:

開發谷歌瀏覽器外掛程式

收藏 摘要 作者自己動手寫了乙個翻譯外掛程式,讀者可以從中了解到開發chrome的外掛程式的過程。今天早上開啟.看到一文章 開發chrome擴充套件程式 自己看看,也還很簡單,就自己動手寫乙個翻譯外掛程式 來看看效果 以前用谷歌的翻譯介面做了乙個翻譯功能的網頁 所以我就打算把這個功能做成乙個谷歌瀏覽...

ie瀏覽器外掛程式開發

第一步 新增登錄檔 建立 reg格式檔案 內容如下 windows registry editor version 5.00 hkey local machine software microsoft internet explorer extensions clsid default visibl...

Android開發瀏覽器例項

一 啟動android預設瀏覽器 intent intent new intent intent.setaction android.intent.action.view uri content url uri.parse intent.setdata content url startactivi...