CallbackContext的作用
js每次执行exec的时候总会生成一个callbackId用来于之对应success回调和fail回调,可在“cordova/exec”模块中找到如下代码:
var callbackId = service + cordova.callbackId++,
argsJson = JSON.stringify(args);
if (success || fail) {
cordova.callbacks[callbackId] = {success:success, fail:fail};//保存回调函数
}
var msgs = nativeApiProvider.get().exec(bridgeSecret, service, action, callbackId, argsJson);
之后callackId传递给native,native在收到callbackId后用它初始化CallbackContext对象(目的就是保存callbackId),之后native在给调用webveiw.evaluateJavascript()根据callbackId找到对应回调函数执行
webveiw.evaluateJavascript('cordova.callbackFromNative(callbackId, true, args.status, [args.message], args.keepCallback);')