2011-11-02 21 views

答えて

12

このためには、プロジェクトの到達可能性クラスをインポートする必要があります。その後、後

: -

#import "Reachability.h" 

あなたはDidLoad書き込みを見るには: - loginButtonTouchedメソッドは、我々はwww.google.comが到達可能かどうかであることを確認してくださいと呼ばれている

- (void)viewDidLoad { 
    Reachability *internetReach = [[Reachability reachabilityForInternetConnection] retain]; 
    [internetReach startNotifer]; 
    Reachability *wifiReach = [[Reachability reachabilityForLocalWiFi] retain]; 
    [wifiReach startNotifer]; 

    NetworkStatus netStatus1 = [internetReach currentReachabilityStatus]; 
    NetworkStatus netStatus2 = [wifiReach currentReachabilityStatus]; 
    if(netStatus1 == NotReachable && netStatus2 == NotReachable) 
    { 
     UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Sorry" message:@"This feature requires an internet connection." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
     [alertView show]; 
     [alertView release]; 
    } 
    else 
    {//wifi connection available; 
} 
} 
+1

を...これは動作しますか? – Oksana

1
First import Reachability files into your project. 

-(void)loginButtonTouched 
{ 
    bool success = false; 
    const char *host_name = [@"www.google.com" 
      cStringUsingEncoding:NSASCIIStringEncoding]; 

    SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithName 
               (NULL, host_name); 
    SCNetworkReachabilityFlags flags; 
    success = SCNetworkReachabilityGetFlags(reachability, &flags); 
    bool isAvailable = success && (flags & kSCNetworkFlagsReachable) && 
        !(flags & kSCNetworkFlagsConnectionRequired); 

    if (isAvailable) 
    { 
     NSLog(@"Host is reachable: %d", flags); 
     // Perform Action if Wifi is reachable and Internet Connectivity is present 
    } 
    else 
    { 
     NSLog(@"Host is unreachable"); 
     // Perform Action if Wifi is reachable and Internet Connectivity is not present 
    }  
} 

SCNetworkReachabilityFlagsは、インターネット接続のステータスを理解するのに役立つフラグを返します。 isAvailable変数が "true"の場合、ホストは です。到達可能とは、無線LANに到達可能でインターネット接続が存在することを意味します。

+0

同じトピックについてのヘルプは、リンクを参照してください:http://stackoverflow.com/questions/6705654/to-check-wifi-is-on-but-no-internet-connectivity/6705836#6705836 –

4

これのための素晴らしいコード行が見つかりました。 プロジェクトに到達可能性クラスを追加して、あなたがこれを行うことができます:INTERNATが到達可能であるが、のWi-Fiオプションを無効にした場合

BOOL isConnectedProperly = ([[Reachability reachabilityForInternetConnection] currentReachabilityStatus] == ReachableViaWiFi); 
関連する問題