先说一下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相关代码![]()
问题:如果我有一个ajax请求,参数是依赖js调用oc原生方法返回的,就会出现ajax请求参数undefined
问题
请问有什么解决方案?
回调呗。放入回调中。
同步的话体验其实很差劲。