当UIWebView加载超过特定时间时,UIAlertView将打开

时间:2012-04-11 23:04:28

标签: uiwebview loading nstimer uialertview

我正在尝试在Web视图加载超过10秒时提醒用户。错误是因为有缓慢或没有互联网连接。问题是这段代码不起作用。

在第一种情况下,我正在尝试在Web视图开始加载时启动计时器。然后要么无效就会过期,要么在10秒后显示网络视图加载速度很慢或根本没有显示警报。

在第二种情况下,我试图在Web视图启动时启动计时器,并在10秒后显示警报或在计时器到期之前使计时器无效。

两者似乎都没有正常工作。

- (void)viewDidLoad
{
timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(webViewLoading) userInfo:nil repeats:YES];

webViewLoadTimer = [NSTimer scheduledTimerWithTimeInterval:10 target:self selector:@selector(showAlert) userInfo:nil repeats:NO];

[super viewDidLoad];
[self configureView];
}

-(void)showAlert
{
 UIAlertView *alert = [[UIAlertView alloc]
                      initWithTitle: @"Warning"
                      message: @""
                      delegate: self
                      cancelButtonTitle:@"OK"
                      otherButtonTitles:nil, nil];
if (self.bgWebView.loading){[alert show];}    
}

我尝试将计时器放在以下方法中,但每次都会发出警报,无论设备是否连接到互联网。它似乎没有失效。

-(void)webViewLoading
{
  if (self.bgView.loading) 
  {
    [self.avBackGround startAnimating];
     webViewLoadTimer = [NSTimer scheduledTimerWithTimeInterval:10 target:self selector:@selector(showAlert) userInfo:nil repeats:NO];
  }
  else
  {
    [self.avBackGround stopAnimating];
    [webViewLoadTimer invalidate];
  }

  if (self.icnWebView.loading) 
  {
    [self.avIcon startAnimating];
  }
  else 
  {
    [self.avIcon stopAnimating];
  }
}

如果我错过了关于此的帖子,我道歉。我似乎无法把它放在一起。

感谢您的帮助!

0 个答案:

没有答案