获取WebView开始加载事件,并实现进度框的显示与隐藏
来源:互联网 发布:真人拍照试衣软件 编辑:程序博客网 时间:2024/06/06 17:33
最近公司在开发一款APP,要求跟H5合作,需求是这样的,原声这块只需要写一个WebView调用H5的页面就可以了
但是有时候因为网络问题,在加载页面的时候,会出现一段很短时间的白屏状态,这时候就需要加一个进度框展示给用户,
比较友好,在网上搜了不少方法,说的最多的就是这种:
在进入WebView的这个Activity的时候,在Oncreate()方法里显示进度框,然后在WebView的setWebViewClient()的时候需要复写掉
里面的一个方法就是:onPageFinished()在这个方法里写进度框消失的逻辑;
这个方法大致看非常非常靠谱,但是,我在真机测试的时候,发现,不同厂家的Android手机,执行onPageFinished()这个方法的事件是不同的
这就造成了,有的手机显示的进度框的时间很长,有的却很短;这就尴尬了;而且我们要求的是只要WebView里面出现一点信息,就需要把进度框dismiss掉
所以这个方法其实不是最合适的。
下面这段代码,是我自己结合网上搜索资料写的,最后的效果看最后的小视频
webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setUseWideViewPort(true);//web1就是你自己定义的窗口对象。 webView.getSettings().setLoadWithOverviewMode(true); webView.setWebViewClient(new MyWebView()); webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); webView.loadUrl(url); webView.setWebChromeClient(new WebChromeClient(){ @Override public void onProgressChanged(WebView view, int newProgress) { super.onProgressChanged(view, newProgress); Log.e("newProgress",newProgress+""); if(newProgress >=50 ){ dismissProgressDialog(); } } });注意:onProgressChanged()这个方法用过的同学都知道,他的第二个参数其实就是进度的数值,加上LOG看一下就知道了
所以,我这里就做一个判断,只要这个数字大于等于50,就让进度框dismiss掉,最后效果请看小视频:
1 0
- 获取WebView开始加载事件,并实现进度框的显示与隐藏
- WebView加载进度Progress的显示
- WebView加载网页-进度显示-网络上传图片并压缩
- Android加载webView加载进度实现
- Android WebView的简单使用,实现标题、加载进度提示
- android webview 实现网页加载进度
- C#下载文件并显示显示进度的方法实现
- Android--当webview加载网页的时候在标题栏上显示加载进度
- Android--当webview加载网页的时候在标题栏上显示加载进度
- Android--当webview加载网页的时候在标题栏上显示加载进度
- webview加载网页的时候在标题栏上显示加载进度
- Android--当webview加载网页的时候在标题栏上显示加载进度
- 1、当webview加载网页的时候在标题栏上显示加载进度
- 【android】自定义ProgressDialog实现暂时隐藏进度值并显示等待状态(附源码下载)
- Jquery事件的显示与隐藏
- 关于点击显示与隐藏的事件
- webview 状态加载开始时显示进度条
- 获取加载素材的进度
- 自定义Gallery实现QQ附近的人和京东金融选择存款时间效果
- Android ImageLoader网络加载图片
- java 实现CRC
- java解析XML
- qp 中文乱码的设置
- 获取WebView开始加载事件,并实现进度框的显示与隐藏
- HDU 4704
- sqlserver alter 语句
- iOS_带发光效果的Label
- Android开发技能图谱
- scala中的尾递归和tableswitch
- 利用循环不变式写出正确的二分查找及其衍生算法
- protobuf入门
- 成功解决在Python文件上右键菜单无“Edit with IDLE”选项