Webview应该覆盖除4.1.x jellybean之外的早期android版本中的所有加载工作

Webview应该覆盖除4.1.x jellybean之外的早期android版本中的所有加载工作,android,webview,android-4.2-jelly-bean,Android,Webview,Android 4.2 Jelly Bean,以下代码适用于所有运行android 2.x的设备,但不适用于带有4.1.2的Nexus7平板电脑 问题是shouldOverrideUrlLoading永远不会运行。 onPageFinished运行正常 我将感谢任何可用的帮助 wv = (WebView) root_view.findViewById(R.id.wv); wv.setBackgroundColor(res.getColor(R.color.def_bgr_color)); wv.setScrollBarStyle(View.

以下代码适用于所有运行android 2.x的设备,但不适用于带有4.1.2的Nexus7平板电脑

问题是shouldOverrideUrlLoading永远不会运行。 onPageFinished运行正常

我将感谢任何可用的帮助

wv = (WebView) root_view.findViewById(R.id.wv);
wv.setBackgroundColor(res.getColor(R.color.def_bgr_color));
wv.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);
wv.setWebViewClient(new MyWebViewClient() );

WebSettings web_settings = wv.getSettings();
web_settings.setJavaScriptEnabled(true);
web_settings.setLoadWithOverviewMode(true);
web_settings.setUseWideViewPort(false);
web_settings.setPluginsEnabled(true);
web_settings.setSupportZoom(true);
web_settings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);

public class MyWebViewClient extends WebViewClient {
    public MyWebViewClient() {
    }

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        Log.i(TAG, "RUN shouldOverrideUrlLoading" );
        return true;

    }

    @Override
    public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);
        Log.i(TAG, "RUN onPageFinished" );
    }
}


String html_str = ... something html ...

wv.loadDataWithBaseURL("file:///android_asset/", html_str, "text/html", "utf-8", null);

您是否尝试在普通桌面浏览器上以html文件的形式加载html_str?如果你不尝试,它可能会带你到某个地方

在早期版本的android中允许跨域脚本编写,但在最新版本的android中,出于安全原因,基于webkit的webview禁止跨域脚本编写。这可能会阻止您的页面加载[在这里胡乱猜测!]