Android-2020最全WebView适配,加载不出头像,软键盘覆盖内容,加载出现白板

2020最全WebView适配

这里推荐使用腾讯X5内核浏览,Tbs替代google的webview,不然适配各种机型,甚至有的低版本的安卓无论怎么配置都加载不出h5,canvas。而且腾讯x5省去了很多麻烦的配置,非常好用。
腾讯X5Webview链接: 跳转网页.

记录一下自己遇到的坑与问题

问题一:布局镶嵌h5页面,使用input时弹出软键盘,软键盘覆盖了input,input应该随着软键盘高度被向上顶,

解决办法:

在加载webview的xml根目录里,添加 android:fitsSystemWindows=“true” 即可。

问题二:聊天信息不能交互,头像显示不出来。

原因:

主要的问题是http 和 https 的原因。Android 7之上的版本必须使用https传递,那么如果头像链接,webview的链接是http开头,就会导致网页加载失败了,或者不显示。
如果不是http网络传输的原因,那么可能少了一些配置,下面内容里有webview可添加的配置

解决办法:

查看这篇配置网络清单文章: 打开链接.

以下是配置webview的一些常用的到的信息

         WebSettings webSettings = webview.getSettings();
            webSettings.setDomStorageEnabled(true);//是否开启本地DOM存储 防止镶嵌h5页面加载显示白板
            webSettings.setJavaScriptEnabled(true);//允许js
            webSettings.setAllowFileAccessFromFileURLs(true); //允许文件url
            webSettings.setSupportZoom(true);           // 支持缩放
            webSettings.setBlockNetworkImage(false);//解决图片不显示
            webSettings.setUseWideViewPort(true);//设置webview推荐使用的窗口,用于解决页面不适配屏幕
            webSettings.setBlockNetworkLoads(false);  //不阻止网络加载
            webSettings.setLoadWithOverviewMode(true);  //缩放至屏幕大小
            webSettings.setLoadsImagesAutomatically(true);  //自动加载图片资源
// webSettings.setDefaultFontSize((int) 10); //设置字体
// setting.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN); //已经被android弃用
            chat_webView.setWebChromeClient(new WebChromeClient());//chrome
            chat_webView.getSettings().setSupportZoom(true);
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {   //解决http和https混合问题
                webSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
            }

https://www.teachcourse.cn/android-webview-websettings

    原文作者:我是giggleman
    原文地址: https://blog.csdn.net/ruiruiddd/article/details/106495337
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞