从JS到Java通信方式有2种。
→参数是直接从JS传到Java对象的。同步处理方式。
→①Android2.3的虚拟机使用addJavascriptInterface的时候存在BUG,则可以使用prompt方法。
②addJavascriptInterface不支持的情况下(内存中不存在Cordova定义的JAVA对象_cordovaNative的时候)、自动转到prompt方法使用。
有些机器(Galaxy2 Android4.1)的addJavascriptInterface的返回参数不支持,则自动转换为prompt方法。
并且JS_OBJECT的返回值的参数不存在的情况下,自动再实行一遍Prompt方法。
通信模式是根据环境不同自动切换以外,还可以自己指定:在deviceReady事件执行后可以进行设置。
var exec = cordova.require('cordova/exec'); exec.setJsToNativeBridgeMode(exec.jsToNativeModes.JS_OBJECT);
var exec = cordova.require('cordova/exec'); exec.setJsToNativeBridgeMode(exec.jsToNativeModes.PROMPT);
var exec = cordova.require('cordova/exec'); exec.setNativeToJsBridgeMode(exec.nativeToJsModes.LOAD_URL);
var exec = cordova.require('cordova/exec'); exec.setJsToNativeBridgeMode(exec.nativeToJsModes.jPRIVATE_API);