1

Web ビューが 10 秒以上読み込まれた場合にユーザーに警告しようとしています。このエラーは、インターネット接続が遅いか、接続されていない場合に発生します。問題は、このコードが機能しないことです。

最初のケースでは、Web ビューの読み込みが開始されたときにタイマーを開始しようとしています。その後、何もせずに期限切れになるか、10 秒後に Web ビューの読み込みが非常に遅い、またはまったくないというアラートを表示します。

2 番目のケースでは、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];
  }
}

これに関する投稿を見逃していたら、申し訳ありません。これだけではまとまりそうにありません。

助けてくれてありがとう!

4

0 に答える 0