2011-11-02 28 views

Trả lời

12

Đối với điều này, bạn cần nhập các lớp khả năng tiếp cận trong dự án của mình.

Sau đó: -

#import "Reachability.h" 

Trong bạn xem DidLoad ghi: -

- (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

Nếu có thể truy cập được, nhưng tùy chọn wi-fi bị tắt ... – 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 
    }  
} 

Khi phương pháp loginButtonTouched được gọi là chúng tôi kiểm tra xem www.google.com có thể truy cập hay không. SCNetworkReachabilityFlags trả về cờ giúp chúng tôi hiểu Trạng thái kết nối internet. Nếu isAvailable trả về biến "true" thì Host là Phương tiện có thể truy cập Wifi có thể truy cập và Kết nối Internet có mặt.

+0

Bạn có thể tham khảo liên kết để được trợ giúp thêm về cùng một chủ đề: http://stackoverflow.com/questions/6705654/to-check-wifi-is-on-but-no-internet-connectivity/6705836#6705836 –

4

Tìm thấy một dòng mã tuyệt vời cho việc này. Thêm lớp Khả năng hiển thị vào dự án của bạn và sau đó bạn có thể làm điều này:

BOOL isConnectedProperly = ([[Reachability reachabilityForInternetConnection] currentReachabilityStatus] == ReachableViaWiFi); 
Các vấn đề liên quan