[英]Thread for StringbyEvaluatingJavascript Function
I'm sending a value to javascript and then javascript return a result to me. 我正在向javascript发送值,然后javascript将结果返回给我。 However, It takes time so that the return value (b) stay null because javascript func needs time.
但是,这需要时间,因此返回值(b)保持为空,因为javascript func需要时间。 I think I needed to create a thread to wait the result.
我想我需要创建一个线程来等待结果。 Below code also doesn't return anything.
下面的代码也不会返回任何内容。
func webViewDidFinishLoad(_ webView: UIWebView)
{
var b = ""
//Threat gcdc
DispatchQueue.main.async {
b = webView.stringByEvaluatingJavaScript(from: "getURL('\(self.song_number)')")!
}
print(b)
}
Try to use evaluateJavaScript(_:completionHandler:) 尝试使用评估JavaScript(_:completionHandler :)
webView.evaluateJavaScript("getURL('\(self.song_number)')") { (result, error) in
if let error = error
{
print("\(error)");
return
}
if let song = result as? String
{
print("\(song)");
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.