view.evaluateJavascript不起作用
时间: 2023-07-20 13:03:33 浏览: 122
`view.evaluateJavascript` 是用于在 WebView 中执行 JavaScript 代码的方法,如果它不起作用可能有以下几个原因:
1. 没有启用 JavaScript:如果应用程序的 WebSettings 中没有启用 JavaScript,则无法执行 JavaScript 代码。您可以通过以下方式启用它:
```
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
```
2. API 版本问题:如果您的应用程序的目标 API 版本为 17 或更高版本,则需要在 `WebViewClient` 子类中覆盖 `shouldOverrideUrlLoading` 方法,并在其中使用 `loadUrl` 方法加载 URL。这是由于在 API 级别 17 之前,`evaluateJavascript` 方法不可用。例如:
```
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
```
3. WebView 加载状态问题:如果您尝试在 WebView 加载完毕之前调用 `evaluateJavascript` 方法,则可能会失败。您可以使用 `WebViewClient` 的 `onPageFinished` 方法确保 WebView 加载完成后再执行 JavaScript 代码。例如:
```
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
view.evaluateJavascript("javascript:alert('Hello, world!');", null);
}
});
```
如果上述解决方案都没有解决您的问题,请提供更多信息,以便我更好地帮助您解决问题。