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...