1

やあみんな私はiOSの世界に不慣れなので、我慢してください。

iOSにネイティブなWebアプリを作成するためにWebビューを作成しましたが、そのアプリは現在ストアにあります。ただし、一部のユーザーは、接続が失われた/遅い場合にビューを(アラートメッセージで)再ロードする際に問題が発生しました。「ネットワークリンクコンディショナー」ツールを使用してテストしましたが、接続が遅い場合は、ページを更新しようとしてもアラートが表示され続けます。以下は私のコードです。問題の解決にご協力いただければ幸いです。

//Overide the default error message by adding error handling mecanism
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
                                                message:@"You must be connected to the internet to use HIPPOmsg. Try again or click the home button to quit"
                                               delegate:self
                                      cancelButtonTitle:@"Try again"
                                      otherButtonTitles:nil];
[alert show];
[alert release];
}

//Implement the 'Try again' button action
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
if (buttonIndex == 0) {
    NSURL *url = [NSURL URLWithString:@"https://app.hippomsg.com/home.php"];
    NSURLRequest *req = [NSURLRequest requestWithURL:url];
    [[NSURLCache sharedURLCache] removeAllCachedResponses];
    [webView loadRequest:req];
}
}
4

1 に答える 1

0

アラートにはボタンが1つしかなく、メソッド定義がそのボタンに設定されています。したがって、明らかに、アラートボタンをクリックするたびに、UIAlerviewデリゲートが呼び出され、何度も試行を続けます(インターネットが実際に機能するまで)。

したがって、アラートメッセージごとに「再試行」と「ホーム」の2つのボタンを提供します。したがって、「再試行」は、指定された方法を実行し、「ホーム」は検索をトップにしてプロセスを終了します。

于 2012-09-19T16:59:01.347 に答える