项目中   加载webview网页 偶尔链接会白屏  先说一下解决方案

解决方案三种:

1、mWebView.getSettings().setDomStorageEnabled(true);

2、mWebView.getSettings().setPluginState(WebSettings.PluginState.ON);//设置是否支持插件

3、还有可能和缓存有关系  可以设置清理一下缓存

webView默认是不开启DOM Storage的,需要手动调用setDomStorageEnabled(true)来开启,只有开启了DOM Storage api后页面才能正常缓存一些数据

有可能是h5用了插件 要设置一下

什么是DOM Storage

HTML5 是下一代 HTML 标准,开始吸引越来越多人的目光。HTML5 的 DOM Storage 机制提供了一种方式让程序员能够把信息存储到本地的计算机上,在需要时获取。这点和 cookie 相似,区别是 DOM Storage 提供了更大容量的存储空间。 
DOM Storage 分为 sessionStorage 和 localStorage。 
localStorage 对象和 sessionStorage 对象使用方法基本相同,它们的区别在于作用的范围不同。sessionStorage 用来存储与页面相关的数据,它在页面关闭后无法使用。而 localStorage 则持久存在,在页面关闭后也可以使用。

webview一些必要设置的属性

        //设置支持jswebSettings.setJavaScriptEnabled(true);//设置适应屏幕webSettings.setUseWideViewPort(true); //将图片调整到适合webview的大小webSettings.setLoadWithOverviewMode(true); // 缩放至屏幕的大小webSettings.setPluginState(WebSettings.PluginState.ON);//设置是否支持插件webSettings.setSupportZoom(true); //支持缩放webSettings.setBuiltInZoomControls(true);webSettings.setDisplayZoomControls(false); //隐藏原生的缩放控件//设置存储模式webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);webSettings.setAllowFileAccess(true);//setDomStorageEnabled解决了webview白屏问题  设置支持DomStoragewebSettings.setDomStorageEnabled(true);//设置支持本地存储webSettings.setDatabaseEnabled(true);//设置缓存webSettings.setAppCacheEnabled(true);webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);webSettings.setJavaScriptCanOpenWindowsAutomatically(true);//支持通过JS打开新窗口webSettings.setLoadsImagesAutomatically(true); //支持自动加载图片webSettings.setDefaultTextEncodingName("utf-8");//下面三个各种监听mWebView.setWebChromeClient(wcc);mWebView.setDownloadListener(dl);mWebView.setWebViewClient(wvc);//加载连接mWebView.loadUrl(XXXXXXXX);

Android  WebView与h5的js方法交互:

1、设置支持js

webSettings.setJavaScriptEnabled(true);

2、注入 Java 对象到 WebView 中

binding.webView.addJavascriptInterface(getJavascriptObject(), "bridge");注:Java 对象定义如下,需要特别注意的是,在 JELLY_BEAN_MR1 之后,只有 public 且添加了 @JavascriptInterface注解的方法才能被调用
private JavascriptObject getJavascriptObject(){return new JavascriptObject();
}public class JavascriptObject{@JavascriptInterfacepublic final void showTitleBar(){binding.webView.post((Runnable)(() -> {binding.rlHeaderView.getRoot().setVisibility(View.VISIBLE);}));}@JavascriptInterfacepublic final void getCurrentLocation(@NotNull final String jsCallback) {binding.webView.post((Runnable)((Runnable) () -> {CharSequence var1 = (CharSequence)jsCallback;if (var1 != null && var1.length() != 0) {binding.webView.loadUrl("javascript:window." + jsCallback);}}));}
}
 getCurrentLocation方法就是h5调用客户端的方法,jsCallback是客户端给h5的回调方法

Android WebView白屏解决方案相关推荐

  1. Android webView白屏问题

    在安卓中webview 因为硬件加速,资源获取慢以及其他各种问题都会导致页面白屏 网上找了一堆解决方案 例如,先关闭硬件加速开启软件加速,或者等到加载完成后,webview在OnPageFinish的 ...

  2. android webview白屏,Android中WebView加载页面出现白屏解决方案

    首先在WebViewClient中添加 @Override public void onReceivedSslError(WebView view, SslErrorHandler handler, ...

  3. android webview白屏,处理方案:webview 闪白屏问题

    先说一种比较尴尬的做法,之后说一种非常有效的做法,仿苹果真正的做法. android:layerType="software" 这句加在webview控件里面 说实话,对我没啥用. ...

  4. Android 启动白屏解决方案

    方案一: 方案二: 方案二变种: 1.先让APP的启动背景变成另一张不是白色的图片 2.再在activity启动的时候把那张设置的非白色的图片设置为白色 方案三: 配置splash_preview.x ...

  5. React Native Android启动白屏的一种解决方案下

    React Native Android启动白屏的一种解决方案下 参考文章: (1)React Native Android启动白屏的一种解决方案下 (2)https://www.cnblogs.co ...

  6. React Native Android启动白屏的一种解决方案上

    React Native Android启动白屏的一种解决方案上 参考文章: (1)React Native Android启动白屏的一种解决方案上 (2)https://www.cnblogs.co ...

  7. android广告页白屏_Android 启动页白屏解决方案

    当我们打开app的时候是不是会有一瞬间的白屏然后再进入主活动,虽然这并不会造成什么不好的后果,但是感觉用户体验就不是很好.像网易云音乐等等,打开一瞬间就显示了他们的loge,无缝衔接,没有白屏,怎么 ...

  8. electorn 白屏解决方案(偶发性白屏)

    百度了半天感觉都不靠谱,最终查阅官方文档找到问题所在-------渲染进程崩溃 可以通过监听`render-process-gone`事件捕获到崩溃的消息,检测到之后重新加载 代码如下 app.on( ...

  9. 解决android启动白屏问题

    第一步:在Sytle中自定义AppTheme <style name="AppTheme.Launcher"><item name="android:w ...

  10. 安卓 WebView 白屏(记录)

    WebView 白屏(布局覆盖错误) 做了一个RecycleView的列表展示,打算点击之后跳转一个网页,之后无论怎么做,Webview 显示的都是白屏. 首先,这个Activity 我是Linear ...

最新文章

  1. jquery实现在元素外单击,隐藏此元素
  2. 有关gcc,make,gdb的知识
  3. 区块链、自动驾驶、人工智能鏖战开始 谁将成为下一个风口?
  4. ListView常用属性、方法
  5. 查找和排序的一点浅显认识
  6. Java面试常见算法
  7. tomcat报错无法启动组件_微软正在修复Windows Server无法启动的0xc0000001报错故障
  8. 解决三星PM981硬盘无法正常安装黑苹果的问题(第一版)
  9. java代码规范插件_阿里java代码规范IDEA插件之傻瓜教程
  10. BlackBerry 7290如何传自定义图片
  11. 腾讯云IM-SDK集成(web端)完成IM登录
  12. 马克思主义原理 - 圣才思维导图
  13. Ubuntu 回收站目录
  14. mysql数据库级监控及常用计数器解析
  15. MS coco数据集下载链接
  16. 模仿京东tab切换--自创
  17. 基于图像的光照(Image-Based Lighting, IBL)概述
  18. 电机控制中标幺的目的
  19. 编程之美 - 孟岩点评
  20. Linux树莓派开发——配置树莓派内核源码,内核编译,更换树莓派Linux内核

热门文章

  1. Ubuntu1804安装ROS(melodic版本)
  2. Elascicsearch集群搭建
  3. 你不知道的二手车分期购车背后的套路
  4. IP转换器 V2.6
  5. 电商十三、pinyougou02.sql的内容④
  6. 最新TP开源的淘宝客系统/推券客CMS系统+功能强大
  7. freemarker的下拉框回显
  8. 中国地级以上城市的经纬度——excel文件
  9. linux虚拟文件系统(二)-ext4文件系统结构
  10. mnist手写数字识别与优化