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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值