0

我向javascript發送一個值,然後javascript向我返回一個結果。但是,它需要時間,以便返回值(b)保持爲空,因爲javascript func需要時間。我想我需要創建一個線程來等待結果。下面的代碼也不會返回任何內容。ThreadbyEvaluatingJavascript的線程函數

func webViewDidFinishLoad(_ webView: UIWebView) 
{ 
    var b = "" 
    //Threat gcdc 
    DispatchQueue.main.async { 
    b = webView.stringByEvaluatingJavaScript(from: "getURL('\(self.song_number)')")! 
    } 
    print(b) 
} 
+0

嘗試使用** evaluateJavaScript(_:completionHandler:)**。我認爲你有一些錯誤。 – Sergey

+0

@Sergey我研究過,但不知道如何使用它。你能提供更多細節嗎? –

回答

0

嘗試使用evaluateJavaScript(_: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)"); 
     } 
}