Android H5 webView加载过程黑屏优化处理
一 问题
H5内嵌页面时,用webView加载过程中出现黑屏:优化处理,在setWebViewClient的onPageStarted和onPageFinished添加一个过渡的页面即可or 进度条
//复写shouldOverrideUrlLoading()方法.使得打开网页时不调用系统浏览器,而是在本Webview中显示
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
return false;
}
//开始载入页面调用的,我们可以设定一个loading的页面,告诉用户程序在等待网络响应
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
v = View.inflate(ShopMallChildActivity.this, R.layout.h5_load, null);
view.addView(v , ViewGroup.LayoutParams.MATCH_PARENT , ViewGroup.LayoutParams.MATCH_PARENT);
}
//在页面加载结束时调用.我们可以关闭loading条,切换程序动作
@Override
public void onPageFinished(WebView view, String url) {
view.removeView(v);
}
//加载页面出现错误时
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
}
//webView默认是不处理https请求的,页面显示空白,需要进行如下设置
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
handler.proceed(); //等待证书响应
}
});
h5_load页面
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:background="@color/white"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>