如果单击webview中的链接,则永远不会调用shouldOverrideUrlLoading()。 (它不显示吐司或记录任何东西)。我也尝试了onPageFinished,它也没有被调用。我读过其他帖子,用户遇到的问题有时候不会被调用,但在我的情况下,它完全被忽略了。
webview = new WebView(MyActivity.this);
webview.getSettings().setBuiltInZoomControls(true);
webview.getSettings().setDisplayZoomControls(false);
webview.loadData(Html.getHtml(), "text/html", "UTF-8");
webview.getSettings().setJavaScriptEnabled(true);
webview.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
new M("shouldOverrideUrlLoading",getApplicationContext());
Log.v("ESSE3", "shouldOverrideUrlLoading()");
System.out.println(url);
System.out.println(Html.getHtml());
webview.loadData(Html.getHtml(), "text/html", "UTF-8");
return true;
}
});
webview.setWebViewClient(new WebViewClient());
setContentView(webview);
尝试启用/启用javascript或在方法中返回true或false。
答案 0 :(得分:6)
您拨打setWebViewClient()
两次。一次使用覆盖方法,一次使用空WebViewClient
!这就是为什么你的方法没有被调用的原因。
webview.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
....
}
});
webview.setWebViewClient(new WebViewClient());