检测网络状态

只要网络状态发生了变化,在任何一个视图控制器都会给出相应的提示

说明: 这里需要导入第三方库,1. MBProgressHUD 2. AFNetworking
导入头文件 MBProgressHUD.h, AFNetworking.h

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // 应用程序加载完成

    UIWindow *window = ((AppDelegate *) [UIApplication sharedApplication].delegate).window;
    
    AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];
    [manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
        // 使用MBProgressHUD三方库创建弹框,给出相应的提示
        MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:window animated:YES];
        hud.mode = MBProgressHUDModeText;
        switch (status) {
            case AFNetworkReachabilityStatusNotReachable:
                // 弹框提示的内容
                hud.labelText = @"世界上最遥远的距离就是没网";
                break;
            case AFNetworkReachabilityStatusReachableViaWWAN:
                hud.labelText = @"2G/3G/4G";
                break;
            case AFNetworkReachabilityStatusReachableViaWiFi:
                hud.labelText = @"WiFi在线";
            default:
                break;
        }
        dispatch_async(dispatch_get_global_queue(0, 0), ^{
            // 显示时间2s
            sleep(2);
            dispatch_async(dispatch_get_main_queue(), ^{
                // 让弹框消失
                [MBProgressHUD hideHUDForView:window animated:YES];
            });
        });
    }];
    [manager startMonitoring];
    
    return YES;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容