Android WebView 不渲染网页

标签 android webview android-4.4-kitkat

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

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

加载后,我们打开返回 URL“htcmd:loaded”并在代码中进行拦截。 像这样:

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();
    }
}

最佳答案

试试这个

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");

关于Android WebView 不渲染网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23805305/

相关文章:

android - 如何在 Android studio 中使用 DDMS 向模拟器发送消息

Android recyclerView,如何指定行布局

java - 安卓 - java.lang.UnsatisfiedLinkError : Native method not found

尝试从 MediaStore 读取时出现 Android KitKat securityException

android - 尝试在带有 KitKat 的 Moto X 上使用 systrace 时获取 'Permission denied (13)'

java - 安卓聊天客户端: socket connection

android - 如何根据需要安全地打开和关闭 WebView 缩放

android - 使用 Android WebView 连接到带有客户端证书的安全服务器

javascript - Android webview 无法正常显示

Android KitKat multidex 应用程序崩溃