一、超时处理方法
有时候断网、网络状况不好或者发生错误等等都会导致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') > -1 || u.indexOf('Adr') > -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来解决这个
问题
。
希望以上这些解决方案能够解决你的
问题
。