iOS網路檢測

來源:互聯網
上載者:User

標籤:

使用之前請從Apple網站下載樣本:點此下載

Reachability 中定義了3種網路狀態:

typedef enum : NSInteger {    NotReachable = 0,//無網路    ReachableViaWiFi,//wifi    ReachableViaWWAN//3g} NetworkStatus;

比如檢測某一特定網站的接續狀況,可以使用下面的代碼:

    Reachability *r = [Reachability reachabilityWithHostName:@"www.apple.com"];    switch ([r currentReachabilityStatus]) {        case NotReachable:            // 沒有網路連接            NSLog(@"沒有網路連接");            break;        case ReachableViaWWAN:            NSLog(@"使用3g網路");            // 使用3G網路            break;        case ReachableViaWiFi:            NSLog(@"使用wifi網路");            // 使用WiFi網路            break;    }

檢測當前網路環境:

// 是否wifi+ (BOOL) IsEnableWIFI {    return ([[Reachability reachabilityForLocalWiFi] currentReachabilityStatus] != NotReachable);}// 是否3G+ (BOOL) IsEnable3G {    return ([[Reachability reachabilityForInternetConnection] currentReachabilityStatus] != NotReachable);}

串連狀態即時通知:

#import <UIKit/UIKit.h>#import "Reachability.h"@interface AppDelegate : UIResponder  <UIApplicationDelegate> {    Reachability  *hostReach;}@property (strong, nonatomic) UIWindow *window;@end
- (void)reachabilityChanged:(NSNotification *)note {    // 串連改變    Reachability* curReach = [note object];    NSParameterAssert([curReach isKindOfClass: [Reachability class]]);    //處理串連改變後的情況    NetworkStatus status = [curReach currentReachabilityStatus];        if (status == NotReachable) {        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示"                                                        message:@"你的網路已中斷連線"                                                       delegate:nil                                              cancelButtonTitle:@"確定" otherButtonTitles:nil];        [alert show];    }}- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    // 監測網路情況    [[NSNotificationCenter defaultCenter] addObserver:self                                             selector:@selector(reachabilityChanged:)                                                 name: kReachabilityChangedNotification                                               object: nil];    hostReach = [Reachability reachabilityWithHostName:@"www.google.com"];//可以以多種形式初始化    [hostReach startNotifier];//開始監聽,會啟動一個run loop    return YES;}

 

 

iOS網路檢測

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.