StringbyEvaluatingJavascript函数的线程

时间:2017-03-03 15:42:18

标签: ios multithreading dispatch dispatch-async stringbyevaluatingjavascr

我向javascript发送了一个值,然后javascript将结果返回给我。但是,由于javascript func需要时间,因此返回值(b)保持为null需要时间。我想我需要创建一个线程来等待结果。下面的代码也没有返回任何内容。

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

1 个答案:

答案 0 :(得分: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)");
      }
}