wkwebview与js调用如何解决异步的问题?

先说一下js与安卓是怎么实现交互的

if (androidJsObj && typeof androidJsObj === "object") {
  //调用安卓原生方法,并返回结果
  let uid = parseInt(window.androidJsObj.getUid()); 
}

经过测试,JS调用安卓原生方法是同步的,getUid()方法执行完毕,函数返回值可以在uid变量中获取到


接下来是js调用oc的方法

//用一个对象保存oc返回来的键与值
var info = {};

//调用oc原生方法,(注意这是一个异步调用)
window.webkit.messageHandlers.getTicket.postMessage(null);
//oc那边收到通知成功后,会去执行js里的一个全局函数,并把前端JS需要的值以键值对的方式带给前端

function getMessage(key, value) {
  console.log(`${key}=${value}`);
  info[key] = value;
}
oc相关代码
0.png

问题:如果我有一个ajax请求,参数是依赖js调用oc原生方法返回的,就会出现ajax请求参数undefined问题
请问有什么解决方案?

阅读 6.9k
1 个回答

回调呗。放入回调中。

同步的话体验其实很差劲。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏