0

私はJavaScriptに値を送信してから、javascriptで結果を返します。ただし、javascriptの関数funcに時間がかかるため、戻り値(b)がnullのままになるように時間がかかります。私は結果を待つスレッドを作成する必要があったと思う。コードの下にも何も返されません。StringbyEvaluatingJavascript関数のスレッド

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)"); 
     } 
} 
関連する問題