Cordova交互概述

Android端

? ? ?App啟動會調(diào)用Application的create方法,然后創(chuàng)建Main Activity,該Activity繼承于CordovaActivity,啟動Activity會調(diào)用onCreate方法,對window做一些設(shè)置,并設(shè)置webview布局。如圖類調(diào)用關(guān)系:

然后調(diào)用super.loadUrl("file:///android_asset/www/index.html");

loadUrl函數(shù)會調(diào)用Init方法,創(chuàng)建一個CordovaWebView,并設(shè)置了CordovaWebViewClient和CordovaChromeClient。

在實例化CordovaWebView時,對PluginManager做了初始化工作,而在CordovaWebViewClient的onPageStarted方法里初始化并啟動CallbackServer。

CordovaWebViewClient的onJsPrompt方法截獲Web端的JavaScript消息,調(diào)用PluginManager的exce方法執(zhí)行插件。

插件執(zhí)行成功后調(diào)用CallbackServer的sendJavaScript方法給Js端返回回調(diào)Js代碼。

js->native交互形式

通過 prompt()和 Native 交互,Js代碼如下:

Native代碼通過WebChromeClient攔截onJsPrompt回調(diào),利用gap:開頭標(biāo)志得知是調(diào)用本地插件請求,然后向PluginManager轉(zhuǎn)發(fā)該請求。PluginManager將會根據(jù)參數(shù)來查找并執(zhí)行具體插件方法。

js層通過prompt向本地發(fā)送poll請求,本地將從CallBackServer中拿出下一個回調(diào)返回給js層。

Js與Native交互形式如下代碼所示:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容