1

このコードを使用して、アプリを初めて開いたときにインターネットをチェックします。

//No Internet Connection error code
-(void)webView:(UIWebView *)webVIEW didFailLoadWithError:(NSError *)error {
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"No Internet Connection!" message:@"In order to use this app you need an active Internet connection!" delegate:self cancelButtonTitle:@"Close" otherButtonTitles:nil, nil];
   [alert show];  
}

//Close app from Alert View
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
exit(0);
}

jQuery .click()関数を持つUIWebViewアプリがあります。ユーザーがそのボタンをクリックしたら、インターネットを再度確認する方法はありますか?

4

4 に答える 4

1

Appleのサンプルコードを見てください。Reachabilityプロジェクトは、接続を検出する方法を示しています

http://developer.apple.com/iphone/library/samplecode/Reachability/index.html

于 2012-09-01T14:53:51.227 に答える
1

クリックしても、ネットワーク接続を介してより多くのリソースが要求されるとは限らないことに注意してください。

UIWebViewDelegateここであなたの友達になるwebView:shouldStartLoadWithRequest:navigationTypeセレクターがあります。必要なときに(クリックまたは他のアクションで)トリガーするには、非表示のiframeのソースをダミー値に設定し、デリゲートメソッドでその値を確認します(テストを実行してを返します) NO

ただし、接続がない場合は終了しないことをお勧めします。これは、特に接続の喪失が一時的なもの(トンネルを通過する場合)の場合は特に、ユーザーがクラッシュと見なす可能性があるためです。また、接続を繰り返しテストすると、アプリの速度が不必要に遅くなり、ユーザーのデータ料金が高くなる可能性があります。

于 2012-09-01T15:01:46.443 に答える
1

あなたはそのようにすることができます:

関数click()で、次のコードを追加する必要があります。

window.location = "fake://myApp/checkForInternet";

Objective-Cコードに次のコードを追加します。

-(BOOL) webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSString *link = request.URL.absoluteString;

    if ([link isEqualToString:@"fake://myApp/checkForInternet"])
    {
            // check for Reachability here
        return NO;
    }

    return YES;
}

この例では、-webView:shouldStartLoad...がwebViewのイベントごとに1回だけ呼び出されることに注意してください。1つのイベントで1つのjavascript関数を2回以上チェックしたい場合は、より複雑なコードを提供できます

@ Rajneesh071が言ったように、Appleのドキュメントで到達可能性のチェックについて読むか、GitHubのプロジェクトをここに示します。

于 2012-09-01T15:08:06.600 に答える
1

AppleのReachabilityコードなどを使用している場合は、このcurrentReachabilityStatus方法が必要です。それ以外の場合は、基になるSCNetworkReachabilityGetFlags関数を呼び出します

于 2012-09-02T14:16:25.917 に答える