gpt4 book ai didi

Javascript 从 swift 中获取值(value)

转载 作者:行者123 更新时间:2023-11-30 13:21:48 26 4
gpt4 key购买 nike

我正在尝试使用 javascript 从 swift 获取值。我正在使用 IUWebView。我使用这段 Javascript 来获取值:

var myVar = null;    

function getValue(key) {
webkit.messageHandlers.getValue.postMessage(key);
return myVar;
}

这一段 Swift 返回值:

func userContentController(userContentController: WKUserContentController, didReceiveScriptMessage message: WKScriptMessage) {
if(message.name == "getValue") {
if let value = NSUserDefaults.standardUserDefaults().stringForKey(message.body as! String) {
self.webView?.evaluateJavaScript("myVar = "+value+";", completionHandler: nil)
}
}
}

javascript 代码正确调用 swift 代码,并且 swift 代码从 NSUserDefaults 获取值,但 javascript 函数未返回结果。

你能帮我解决这个问题吗?

最佳答案

看来您可能正在使用第三方框架,但 UIWebview 的 stringByEvaluatingJavaScriptFromString(_:) 方法返回 js 函数返回的任何内容,作为字符串。所以如果你的 JavaScript 是

function doSomething() {
return 'test'
}

然后从 iOS 调用 doSomething()

let js = "doSomething()"
let result = webView.stringByEvaluatingJavaScriptFromString(js)

result 应该是一个值为 "test"

的字符串

注意:必须退回某些东西。我相信您的代码可能无法工作,因为您正在设置一个值,而不是返回任何内容。

关于Javascript 从 swift 中获取值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37706154/

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