Cordova交互概述

Android端

     App启动会调用Application的create方法,然后创建Main Activity,该Activity继承于CordovaActivity,启动Activity会调用onCreate方法,对window做一些设置,并设置webview布局。如图类调用关系:

Cordova交互概述_第1张图片

然后调用super.loadUrl("file:///android_asset/www/index.html");

loadUrl函数会调用Init方法,创建一个CordovaWebView,并设置了CordovaWebViewClient和CordovaChromeClient。

在实例化CordovaWebView时,对PluginManager做了初始化工作,而在CordovaWebViewClient的onPageStarted方法里初始化并启动CallbackServer。

CordovaWebViewClient的onJsPrompt方法截获Web端的JavaScript消息,调用PluginManager的exce方法执行插件。

插件执行成功后调用CallbackServer的sendJavaScript方法给Js端返回回调Js代码。

js->native交互形式

Cordova交互概述_第2张图片

通过 prompt()和 Native 交互,Js代码如下:

Cordova交互概述_第3张图片

Native代码通过WebChromeClient拦截onJsPrompt回调,利用gap:开头标志得知是调用本地插件请求,然后向PluginManager转发该请求。PluginManager将会根据参数来查找并执行具体插件方法。

js层通过prompt向本地发送poll请求,本地将从CallBackServer中拿出下一个回调返回给js层。

Js与Native交互形式如下代码所示:

Cordova交互概述_第4张图片

你可能感兴趣的:(Cordova交互概述)