一、超时处理方法

有时候断网、网络状况不好或者发生错误等等都会导致webview加载不到页面的情况,这时候我们需要做相应的处理方法,如一个刷新按钮允许用户重新加载,所以需要做相应处理方法,常用的是设置一个时间计时器,并重写WebViewClient中onPageStarted和onPageFinished函数,在onPageStarted执行时启动计时,在onPageFinished关闭计时,并在计时器中执行超时之后执行相应处理,参考代码如下:

privateHandler mHandler =new Handler();//超时之后的处理Handler 
private Timer timer;//计时器
privatelongtimeout = 5000;//超时时间
@Override
publicvoid onPageStarted(WebView view, String url, Bitmap favicon) {
    timer =new Timer();
    TimerTask tt =new TimerTask() {
        @Override
        publicvoid run() {
             /* * 超时后,首先判断页面加载是否小于100,就执行超时后的动作 */
             if(TestJsActivity.this.mWebView.getProgress() < 100) {
                 mHandler.sendEmptyMessage(0x101);
                 timer.cancel();
                 timer.purge();
     timer.schedule(tt, timeout, 1);
 /*** onPageFinished指页面加载完成,完
一、超时处理方法有时候断网、网络状况不好或者发生错误等等都会导致webview加载不到页面的情况,这时候我们需要做相应的处理方法,如一个刷新按钮允许用户重新加载,所以需要做相应处理方法,常用的是设置一个时间计时器,并重写WebViewClient中onPageStarted和onPageFinished函数,在onPageStarted执行时启动计时,在onPageFinished关闭计时,并...
WebView 作为承载网页的控件,在网页显示的过程中会产生一些事件,并回调给我们的应用程序,以便我们在网页 加载 过程中做应用程序想 处理 的事情。比如说客户端需要显示网页 加载 的进度、网页 加载 发生错误等等事件。 由于现在项目中部分页面图片之类的资源很多,导致数据传输量很大,一定概率会出现空白页面,也就是资源 加载 超时 导致的。 为了解决这个 问题 ,目前解决的思路是:通过计时器来控制同一个资源是否 超时 加载 ,如
对接安卓端 webView 遇到的 问题 ,页面刚开始bridge会失效一段 时间 ,在IOS上基本不会出现(没测到过)网络上的Bridge.js代码var u = navigator.userAgent, isAndroid = u.indexOf('Android') &gt; -1 || u.indexOf('Adr') &gt; -1; //android终端 function connec...
ReactNative中的 WebView 组件是用来展示网页或者HTML内容的,但是有时候在 加载 网页内容时会出现白屏的情况。下面是一些可能导致白屏 问题 的原因以及解决方案: 1. WebView 的style属性设置 问题 :在ReactNative中,如果 WebView 组件的style属性没有设置宽度和高度,那么 默认 是不可见的。因此,如果 WebView 显示白屏,可以检查一下style的设置是否正确。 2. 网络连接 问题 :如果 WebView 要显示的网页内容需要联网才能访问,那么需要确保设备处于联网状态。如果设备没有联网, WebView 就会一直显示白屏。 3. 网页内容 加载 速度 问题 :有些网页内容可能需要较长 时间 才能 加载 完成,如果 加载 时间 过长,用户就会看到白屏。解决这个 问题 的方法是可以使用 WebView 的onLoadEnd属性来监听网页是否 加载 完成,可以在 加载 完成后再将 WebView 显示出来。 4. WebView 版本 问题 :如果使用的是老版本的 WebView 组件,可能会出现白屏 问题 。可以更新ReactNative版本或者 WebView 版本来解决这个 问题 。 5. WebView 中的JavaScript 问题 :如果网页中有JavaScript代码,可能会导致 WebView 出现白屏。可以通过设置 WebView 的javaScriptEnabled属性为true来解决这个 问题 。 希望以上这些解决方案能够解决你的 问题