注册 登录
主题 : 请问UIWebView超时警报怎么实现啊??
级别: 新手上路
UID: 107127
精华: 0
发帖: 6
可可豆: 60 CB
威望: 60 点
在线时间: 5(时)
注册时间: 2011-11-21
最后登录: 2012-03-12
0 楼:  发表于: 2011-12-23 18:56    发自: Web Page
来源于 一般提问 分类

请问UIWebView超时警报怎么实现啊??   

现在我有一个UIWebView
直接使用

NSString *urlString = [NSString stringWithFormat:@"http://www.baidu.com"];
    NSURL *url = [NSURL URLWithString:urlString];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    NSLog(@"%@",urlString);
    [myWebView loadRequest:request];
来获取baidu的网页

我想设如果获取不到即获取时间超过某一时间会弹出警报,该怎么实现呢??

级别: 新手上路
UID: 107127
精华: 0
发帖: 6
可可豆: 60 CB
威望: 60 点
在线时间: 5(时)
注册时间: 2011-11-21
最后登录: 2012-03-12
1 楼:  发表于: 2011-12-24 00:18    发自: Web Page
...在线等大虾!
级别: *
UID: 89854
精华: *
发帖: *
可可豆: * CB
威望: * 点
在线时间: (时)
注册时间: *
最后登录: *
2 楼:  发表于: 2011-12-25 11:54    发自: Web Page
在webview中有委托方法的!

比如有个webview加载失败的方法, 你可以在这个方法中做你想做的操作
级别: 新手上路
UID: 107127
精华: 0
发帖: 6
可可豆: 60 CB
威望: 60 点
在线时间: 5(时)
注册时间: 2011-11-21
最后登录: 2012-03-12
3 楼:  发表于: 2011-12-26 08:46    发自: Web Page
回 2楼(st5302783) 的帖子
谢谢你,可是我在加载失败的方法里加入一个loading动画停止的方法,然后我乱输入一个网址,他也没加载显示失败,这个该怎么弄呢?可以弄一个超过20秒就弹出警报的方法吗
级别: *
UID: 89854
精华: *
发帖: *
可可豆: * CB
威望: * 点
在线时间: (时)
注册时间: *
最后登录: *
4 楼:  发表于: 2011-12-26 09:35    发自: Web Page
那你试下在开始加载的方法中  设置一个定时器!  20秒后。触发事件!
级别: *
UID: 89854
精华: *
发帖: *
可可豆: * CB
威望: * 点
在线时间: (时)
注册时间: *
最后登录: *
5 楼:  发表于: 2011-12-26 14:01    发自: Web Page
-(void) webViewDidStartLoad:(UIWebView *)webView
{
    timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(jishu) userInfo:nil repeats:YES];
}

-(void) jishu
{
    if(i++>=5)
    {
        [webview stopLoading];
        NSLog(@"加载失败");
        [timer invalidate];
        i = 0;
    }
}


-(IBAction) click
{
    [webview goBack];
}

-(void) webViewDidFinishLoad:(UIWebView *)webView
{
    i = 0;
    [timer invalidate];
    
}



我是这样实现你的 效果的 !


2011-12-26 13:58:20.875 exm[807:207] 加载失败
2011-12-26 13:58:31.202 exm[807:207] 加载失败
2011-12-26 13:59:10.510 exm[807:207] 加载失败
级别: 新手上路
UID: 186622
精华: 0
发帖: 15
可可豆: 15 CB
威望: 15 点
在线时间: 78(时)
注册时间: 2012-12-08
最后登录: 2016-08-31
6 楼:  发表于: 2013-04-06 16:52    发自: Web Page
思路不错,学习了!
级别: 精灵王

UID: 47876
精华: 0
发帖: 1517
可可豆: 5147 CB
威望: 5418 点
在线时间: 1079(时)
注册时间: 2011-01-21
最后登录: 2018-09-21
7 楼:  发表于: 2013-04-07 10:16    发自: Web Page
时间你自己改,代码里面我用的是5秒



#pragma mark - nsurl connection method and delegate

-(void)checkConnection
{
  NSURLRequest *request =[NSURLRequest requestWithURL:[NSURL URLWithString:tvUrl]
                                          cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
                                      timeoutInterval:5.0];
  if (theConnection)
  {
    [theConnection cancel];
    SAFE_RELEASE(theConnection);
  }
  theConnection= [[NSURLConnection alloc]initWithRequest:request delegate:self startImmediately:YES];
}

-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
  if (theConnection) {
    SAFE_RELEASE(theConnection);
  }
  
  if ([response isKindOfClass:[NSHTTPURLResponse class]]){
    
    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse*)response;
    if ((([httpResponse statusCode]/100) == 2)){
      DLog(@"connection ok");
    }
    else{
      NSError *error = [NSError errorWithDomain:@"HTTP" code:[httpResponse statusCode] userInfo:nil];
      if ([error code] == 404){
        NSLog(@"404");
        [self openNextLink];
      }
    }
  }
}

-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{
  
  if (theConnection) {
    SAFE_RELEASE(theConnection);
  }
  if (loadNotFinishCode == NSURLErrorCancelled)  {
    return;
  }
  if (error.code == 22) //The operation couldn’t be completed. Invalid argument
    [self openNextLink];
  else if (error.code == -1001) //The request timed out.  webview code -999的时候会收到-1001
    [self openNextLink];
  else if (error.code == -1005) //The network connection was lost.
    [self openNextLink];
  else if (error.code == -1009){ //The Internet connection appears to be offline
    //do nothing 
  }
}


CocoaChina社区转载内容已尽可能注明出处,如未能核实来源或转发内容图片有权利瑕疵的,请及时联系社区进行修改或删除【联系方式QQ : 3442093904 邮箱:support@cocoachina.com】文章内容为作者独立观点,不代表CocoaChina社区立场。版权归原作者所有,如申请授权请联系作者,因文章侵权CocoaChina社区不承担任何法律及连带责任。

描述
快速回复

关注本帖(如果有新回复会站内信通知您)

发帖、回帖都会得到可观的积分奖励。查看论坛积分规则

按"Ctrl+Enter"直接提交
    顶部