前言
H5加載慢,想要在移動(dòng)端顯示加載進(jìn)度?答案就是這么簡單!
歡迎加入學(xué)習(xí)小組QQ群: 193765960。
版權(quán)歸作者所有,如有轉(zhuǎn)發(fā),請注明文章出處:https://xiaodanchen.github.io/archives/
相關(guān)文章
Android在H5加載完成前顯示加載進(jìn)度條
Android 在H5加載完成前顯示加載進(jìn)度條2
實(shí)現(xiàn)方案:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_webpage);
initData();
initView();
//注意:不要在mWebView loadUrl的時(shí)候顯示進(jìn)度條,因?yàn)檫@時(shí)候有可能你的webActivity的view還沒有初始化,造成activity 的content view覆蓋了進(jìn)度條。
showLoading();
}
mWebView.setWebChromeClient(new WebPageChromeClient(){
@Override
public void onProgressChanged(WebView view, int newProgress) {
//第二次更新:隨著mwebview的設(shè)置不停增加。不知道什么時(shí)候發(fā)現(xiàn)進(jìn)度條又不可見了。
//這時(shí)候需要加入以下代碼:
//if(mProgressBar.getVisibility()==ProgressBar.GONE){
// mProgressBar.setVisibility(ProgressBar.VISIBLE);
//}
//以上三行代碼可以暫時(shí)解決問題,mProgressBar是我在BaseActivity中自己定義的對象。
if(mProgressBar.getVisibility()==ProgressBar.GONE){
mProgressBar.setVisibility(ProgressBar.VISIBLE);
}
///////////////////////////////////////////////////
if(newProgress == 100){
cancelLoading();//取消進(jìn)度條顯示
}
super.onProgressChanged(view, newProgress);
}
});
錯(cuò)誤方案:
假如你使用了onPageFinished()方案,那么恭喜你,你很有可能掉坑里了。因?yàn)閡rl如果存在重定向等情況,onPageFinished會(huì)多次調(diào)用,而且很有可能,H5的界面還沒有真正加載顯示,你的loading界面就取消掉了。