相机例子发起通信过程

1.exec(cameraSuccessCallback, cameraErrorCallback, "Camera", "takePicture", args);

  执行如上代码后js生成callbackId,js端保存callbackId对应的成功失败回调,并将callbackid传给原生,
  最终原生通过callbackId来搜索对应的回调函数
  cordova.callbacks[callbackId] = {success:cameraSuccessCallback,fail:cameraErrorCallback}将


2.以上代码最终执行prompt()将数据传递给原生
  prompt(argsJson, 'gap:'+JSON.stringify([bridgeSecret, 'Camera', 'takePicture', callbackId]));

  bridgeSecret为桥接方法,见cordova/exec模块篇
  我们在设置native到js的通信模式的时候会返回随机数字(字符),native端js端均保存这个变量值,
  在每次执行exec的时候会将js端保存的该值传递给native并做比较,如果两个值不相等则终止执行exec

results matching ""

    No results matching ""