详解UIWebView之网络状况显示

来源:互联网 发布:java局部变量初始化 编辑:程序博客网 时间:2024/05/29 13:26

  UIWebView网络状况显示是本文介绍的内容,如果直接用UIWebView来显示网页很简单,只需要向UIWebView发送一个NSURLRequest即可  。但是你会发现,不够人性化,因为你不知道当前状况,网页是否在加载,是否已加载完  。mobile safari就很有人性化,不但有blue progressbar,还有一个network activity indicator在status bar  。

  那么我们也需要加入这样的特色到应用当中  。加入network activity indicator其实很简单,代码如下:

  1. - (void)showLoading    
  2. {    
  3.     [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];    
  4.     self.theActivityView.hidden = NO;    
  5.     [self.theActivityView startAnimating];    
  6. }    
  7. - (void)hideLoading    
  8. {   
  9.     [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];    
  10.     self.theActivityView.hidden = YES;    
  11.     [self.theActivityView stopAnimating];    
  12. }    
  13. - (void)webViewDidStartLoad:(UIWebView *)webView    
  14. {    
  15.     [self showLoading];    
  16.     NSLog(@"start load");    
  17. }    
  18. - (void)webViewDidFinishLoad:(UIWebView *)webView    
  19. {    
  20.     [self hideLoading];    
  21.     NSLog(@"finish load");    
  22. }    
  23. - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error    
  24. {    
  25.     [self hideLoading];    
  26.     NSLog(@"error load");    
  27. }    
  28. - (void)showLoading  
  29. {  
  30.  [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];  
  31.  self.theActivityView.hidden = NO;  
  32.  [self.theActivityView startAnimating];  
  33. }  
  34. - (void)hideLoading  
  35. {  
  36.  [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];  
  37.  self.theActivityView.hidden = YES;  
  38.  [self.theActivityView stopAnimating];  
  39. }  
  40. - (void)webViewDidStartLoad:(UIWebView *)webView  
  41. {  
  42.  [self showLoading];  
  43.  NSLog(@"start load");  
  44. }  
  45. - (void)webViewDidFinishLoad:(UIWebView *)webView  
  46. {  
  47.  [self hideLoading];  
  48.  NSLog(@"finish load");  
  49. }  
  50. - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error  
  51. {  
  52.  [self hideLoading];  
  53.  NSLog(@"error load");  

  theActivityView是UIActivityIndicatorView的实例  。  这样当UIWebView加载网页的时候,就会在status bar有一个indicator,  在UIWebView frame当中还有一个UIActivityIndicatorView以示网页正在加载  。

  研究了一下如何实现progressbar,还没找到方法  。因为UIWebView可用的delegate方法只有那么几个,对进度条显示没有帮助,只有另寻他法  。

  小结:详解UIWebView网络状况显示的内容介绍完了,希望通过本文的学习能对你有所帮助  。

 

 

 

有网络请求时

[cpp] view plaincopyprint?
  1. //开启状态栏动画  
  2. [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];  
  3. //关闭状态栏动画  
  4. [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];  

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 大麦盒子总自动加软件怎么办 小米手机玩王者荣耀卡怎么办 荣耀8青春版信号差怎么办 华为mate8电池不耐用怎么办 华为4x内存小怎么办 发现手机被用过怎么办 华为p8手机声音小怎么办 手机指纹解锁密码忘了怎么办 华为p10黑色掉漆怎么办 金立手机导航信号弱怎么办 手机导航时gps信号弱怎么办 三星手机导航gps信号弱怎么办 小米5导航信号弱怎么办 华为手机导航gps信号弱怎么办 手机屏玻璃裂了怎么办 oppo音量键坏了怎么办 魅蓝手机屏幕碎了怎么办 手机钢化膜边缘有气泡怎么办 手机贴钢化膜边缘有气泡怎么办 苹果手机钢化膜边缘有气泡怎么办 手机膜里的水泡怎么办 膜贴好了有气泡怎么办 后档玻璃膜气泡怎么办 贴膜里面有灰尘怎么办 贴膜边缘不粘怎么办 贴膜时候的气泡怎么办 贴手机膜起泡了怎么办 手机膜起泡泡了怎么办 手机膜鼓起来了怎么办 贴膜中间有气泡怎么办 新车贴膜有气泡怎么办 贴手机膜进灰尘怎么办 贴手机膜有灰尘怎么办 华为mate10后机壳碎了怎么办 手机屏和壳分开了怎么办 oppoa33手机开不了机怎么办 7p背面刮花了怎么办 oppo手机左右两键失灵怎么办 苹果5s屏幕翘起怎么办 0pp0手机有点卡怎么办 手机用久有点卡怎么办