在WKWebView中,我们可以使用webkit消息处理程序调用ObjectiveC /
swift代码
例如:webkit.messageHandlers.< handler> .pushMessage(message)
例如:webkit.messageHandlers.< handler> .pushMessage(message)
它适用于没有参数的简单的JavaScript函数.但;
解决方法
不幸的是,我找不到本地解决方案.
使用JavaScript承诺&您可以从iOS代码中调用resolve功能.
UPDATE
这是你如何使用承诺
在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中