安卓 WebView显示白页

安卓系统

尽管网页在浏览器中打开,但为什么Web视图可以显示白页。最初有一个错误:

净:: ERR_CACHE_MISS

但是在我添加以下代码后:

 wv.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);

没有错误,但页面未加载,仅显示白页。通过单击webview中的按钮打开页面。在移动应用程序端未处理单击。

我的清单也得到了许可:

<uses-permission android:name="android.permission.INTERNET" />

请帮我。我不明白为什么会发生这种情况。该页面还在iOS上成功打开。这是我的代码:

private void initView(String url) {
    wvDetail.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            if (url.contains("webview://closeScreen")) {
                activity.finish();
                return true;
            } else
                return super.shouldOverrideUrlLoading(view, url);
        }

    @Override
    public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
        super.onReceivedError(view, errorCode, description, failingUrl);
        Toast.makeText(activity, description, Toast.LENGTH_LONG).show();
    }

    @Override
    public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
        handler.proceed();
    }
});
wvDetail.getSettings().setJavaScriptEnabled(true);
wvDetail.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
wvDetail.loadUrl(url);

}

马特奥·赫尔瓦斯(Mateo Hervas)

您的网络视图设置似乎有问题。尝试添加以下设置:

WebSettings settings = wvDetail.getSettings();
//if your page needs javascript
settings.setJavaScriptEnabled(true);
//to handle your cache
settings.setCacheMode(WebSettings.LOAD_DEFAULT);
settings.setAppCacheEnabled(true);
settings.setAppCachePath(cacheDir.path);

要启用JS的某些功能,您还应该使用setdomStorageEnabled(请参阅此问题):

settings.setDomStorageEnabled(true)

如果您的页面仍未加载,并且您完全信任要加载的网页,那么我还将使用此设置来提供对Webview的更多访问权限:

    settings.setBlockNetworkImage(false);
    settings.setLoadsImagesAutomatically(true);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        settings.setSafeBrowsingEnabled(false);
    }

    settings.setJavaScriptCanOpenWindowsAutomatically(true);

    settings.setAllowFileAccess(true);

要使用meta标签的设置加载Webview,请使用:

setUseWideViewPort(true);

最后,您可以检查webView的大小,并使其适合系统窗口,如下所示:

wvDetail.setFitsSystemWindows(true);

就像奖金一样,如果您的目标是API级别11以上,则可以这样设置图层类型:

wvDetail.setLayerType(View.LAYER_TYPE_HARDWARE, null);

我希望这种对网络视图中常用设置的解释有意义!根据您的网页,我认为其中一些可能对您有用!让我知道它是否有效!:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

WebView loadurl()-安卓应用

显示int值时出错| 安卓

显示arrayList的项目重写toString()安卓

在安卓设备上显示 div

如何显示文字和按钮?(安卓)

如何从WebView中的页面获取数据?安卓 Xamarin

安卓:保存从内部存储图像中SharedPreferences并显示它

安卓:动态显示数据,以我的微调

如何在片段中显示对话| 安卓

显示启动画面后,离子安卓白屏

安卓; 执行方法时如何显示按钮

安卓。不显示表格布局。ImageView问题

RadioButton 的文本不显示 | 安卓工作室

谷歌地图在我的安卓应用中显示空白页?

安卓。Webview。使用Javascript显示页面的一部分

如何知道用户何时在 PDFView 中滑动到下一页?- 安卓

ListView 不显示项目列表它只显示包要做什么?-安卓

为什么在安卓9.0的延迟显示在网页视图进度条?

在我的主要活动中显示从sqllite数据库到listview的值。安卓

如何为每个子类显示不同的片段/视图?安卓系统

从操作栏打开“选项”菜单,并显示“硬件选项”按钮?(安卓)

当应用程序在后台时显示图标。安卓

为什么我的插页式广告会在按下后退按钮时显示?安卓

如何限制PlaceAutocompleteFragment仅显示公共交通站点?安卓

读取.txt文件之前,烤面包在活动中未正确显示。安卓

我怎样才能让视频在安卓上全屏显示?

带有标记的谷歌地图在安卓浏览器中不显示

给安卓添加动画

安卓:让孩子的孩子