在WKWebView中,我们可以使用webkit消息处理程序来调用ObjectiveC/swift代码
例如:webkit.messageHandlers.<handler>.pushMessage(message)
它非常适合没有参数的简单javascript函数。但;
最佳答案
不幸的是,我找不到 native 解决方案。
但是以下解决方法解决了我的问题
使用JavaScript Promise,您可以从iOS代码中调用resolve函数。
更新
这就是您可以使用 promise 的方式
在JS中
this.id = 1;
this.handlers = {};
window.onMessageReceive = (handle, error, data) => {
if (error){
this.handlers[handle].resolve(data);
}else{
this.handlers[handle].reject(data);
}
delete this.handlers[handle];
};
}
sendMessage(data) {
return new Promise((resolve, reject) => {
const handle = 'm'+ this.id++;
this.handlers[handle] = { resolve, reject};
window.webkit.messageHandlers.<yourHandler>.postMessage({data: data, id: handle});
});
}
在iOS中
使用适当的处理程序ID调用
window.onMessageReceive
函数