android webview:loadUrl(“javascript:(function(){...}”)vs evaluateJavascript(...)

时间:2016-06-18 00:41:08

标签: javascript android android-webview

据我了解,有两种方法可以将 JS 执行注入Android WebView中的当前页面。

我想知道除了那个之外是否存在一个优点/缺点:

 WebView.evaluateJavascript(...) 

提供回电?

1 个答案:

答案 0 :(得分:0)

另一个优点是evaluateJavascript()是异步的。某些应用程序犯这个错误的情况是在等待JavaScript回调时。例如,不要使用这样的代码:

// This code is BAD and will block the UI thread
webView.loadUrl("javascript:fn()");
while(result == null) {
  Thread.sleep(100);
}

相反,我们需要使用evaluateJavascript()来异步运行JavaScript。