WKWebView evaluateJavaScript completionHandler未在iOS 11中调用

时间:2017-09-20 17:11:42

标签: wkwebview ios11

let eval = "getTarget('\(url.absoluteString)')"
webView.evaluateJavaScript(eval, 
completionHandler: {(response, error) in
})

在iOS 11中根本不会调用completionhandler。适用于iOS 10。

有人解决这个问题吗? 要么 是否有evaluateJavaScript的替代方案。

2 个答案:

答案 0 :(得分:1)

我在Xamarin(iOS 11)上遇到过这个问题。 我用InvokeOnMainThread修正了这个问题。 例如:

InvokeOnMainThread(() =>
{
      webView.EvaluateJavaScript($"example('{text}')", (response, error) => {}
}

也许你会找到类似的解决方案。

答案 1 :(得分:1)

iOS 11要求在主线程上调用evaluateJavaScript。因此,如果您没有从主线程调用它,请使用DispatchQueue.main.async {}包围您的调用。