简体   繁体   English

StringbyEvaluatingJavascript函数的线程

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM