我们在看有些应用在引入h5的时候经常会有一个进度条在转,显示加载的意思,那么这个东西其实一般是我们android端做的事(不要把所有的事都推给h5~~~),其实实现起来很简单,
ok 废话不多说,上代码吧
wv.setWebViewClient(new WebViewClient() { @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); DialogUtils.showUpdateDialog(MainActivity.this, "加载中", "请稍后。。。"); } @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); DialogUtils.hideDialog(); } @Override public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) { super.onReceivedError(view, request, error); Toast.makeText(MainActivity.this, "网页加载错误,请稍后重试", Toast.LENGTH_SHORT).show(); } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { return true; } }
其中的onPageStarted 和 onPageFinished和onReceivedError是我们这次要用到的方法,可以直接看方法名就能知道什么意思了。
其中onPageStarted表示的是当我们加载开始时我们要做什么操作,很简单这个时候你就定义一个dialog来显示加载状态就好了
onPageFinished表示的是当我们加载完成后需要做什么操作,一般我们就是把这个加载dialog去掉就行了。至于这个onReceivedError是当我们加载失败做什么操作,这个时候一般是写一个加载错误的布局,或者fragment进行页面提示,
知道了方法那我们直接就实现就好了
请看效果图
其中dialog是自己写的一个小工具类,很简单自己定义下即可