gpt4 book ai didi

javascript - 将 iOS 中被调用函数的结果返回到 JavaScript 中 WkWebView 中的调用函数

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:32:24 25 4
gpt4 key购买 nike

我们在 iOS 中通过 javascript 调用了一个函数,即

var data = webkit.messageHandlers.callbackHandler.postMessage("Hello from JavaScript");

我想在 iOS 中调用方法的数据变量中分配返回值。

iOS 代码:

func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
if(message.name == "callbackHandler") {
print("JavaScript is sending a message \(message.body)")
how to send data back??
}
}

有人可以告诉我怎么做吗??

我知道我可以使用 evaluateJavascript 来回调另一个方法,但由于某些限制,我必须从相同的方法返回结果。

最佳答案

这是一种方法:

Javascript:

function callNativeCode() {
webkit.messageHandlers.callbackHandler.postMessage("Hello from JavaScript");
}

// this function will be later called by native code
function callNativeCodeReturn(returnedValue) {
// do your stuff with returned value here
}

swift :

func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
if(message.name == "callbackHandler") {
print("JavaScript is sending a message \(message.body)")
webView.evaluateJavaScript("callNativeCodeReturn(0)")
}
}

当然这不是很优雅也不是同步的...

还有另一种使用 promises 的方法,您可以在这里找到更多相关信息: http://igomobile.de/2017/03/06/wkwebview-return-a-value-from-native-code-to-javascript/

关于javascript - 将 iOS 中被调用函数的结果返回到 JavaScript 中 WkWebView 中的调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45193579/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com