Android WebView无法呈现网页

时间:2014-05-22 11:17:11

标签: android webview android-4.4-kitkat

我有一些在WebView中打开的网页。

<body onload="window.location.href='htcmd:loaded';"> 

加载后我们打开网址&#34; htcmd:loaded&#34;并拦截代码。 像这样:

getWebView().getSettings().setJavaScriptEnabled(true);
        getWebView().setWebViewClient(new WebViewClient() {
            @Override
            public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
                handler.proceed();
            }

            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                if ("htcmd:loaded".equals(url)) {
                    Toast.makeText(getActivity(), "htcmd:loaded", Toast.LENGTH_SHORT).show();
                }
                return true;
            }
        });
        getWebView().loadUrl("https://some.url");

在Android 4.4.2首次启动时一切都很好。但是如果我在首次运行后杀了应用程序并打开,则网页无法呈现。但如果我点击屏幕或更改方向网页出现。哪里有问题?

解决方案:我有两个黑客))) 第一步:在网页上添加一个java脚本:

<body onload="setTimeout(function(){window.location.href='htcmd:loaded';},3000);"> 

第二:向网络客户端添加代码:

@Override
public void onPageFinished(WebView view, String url) {
    if (android.os.Build.VERSION.SDK_INT >= 19) {
        view.requestFocus();
    }
}

1 个答案:

答案 0 :(得分:2)

试试这个

w.getSettings().setLoadWithOverviewMode(true);
w.getSettings().setUseWideViewPort(true);   
getWebView().getSettings().setJavaScriptEnabled(true);
getWebView().setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
           return (false);

    });
public void onReceivedError(WebView view, int errorCode, String description, String  failingUrl) {
                 Toast.makeText(activity, "Oh no! " + description, Toast.LENGTH_SHORT).show();
               }
    getWebView().loadUrl("https://www.google.com");