| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 | 
							- //
 
- //  WHUtilsManager.m
 
- //  WHChatV
 
- //
 
- //  Created by 刘必果 on 2023/4/19.
 
- //
 
- #import "WHUtilsManager.h"
 
- @implementation WHUtilsManager
 
- + (void)checkNetworkStatus:(void (^)(BOOL isAlways, AFNetworkReachabilityStatus status))response{
 
-     //处理第一次安装时 网络访问问题
 
-     //1.获取网络权限 根绝权限进行人机交互
 
-     
 
-     [self networkStatusDidFinishLaunching:^(BOOL isAlways, AFNetworkReachabilityStatus states) {
 
-         response(isAlways, states);
 
-     }];
 
- }
 
- /*
 
-  CTCellularData在iOS9之前是私有类,权限设置是iOS10开始的,所以App Store审核没有问题
 
-  获取网络权限状态
 
-  */
 
- + (void)networkStatusDidFinishLaunching:(void (^)(BOOL isAlways, AFNetworkReachabilityStatus states))response{
 
-     //2.根据权限执行相应的交互
 
-     CTCellularData *cellularData = [[CTCellularData alloc] init];
 
-     
 
-     /*
 
-      此函数会在网络权限改变时再次调用
 
-      */
 
-     cellularData.cellularDataRestrictionDidUpdateNotifier = ^(CTCellularDataRestrictedState state) {
 
-         switch (state) {
 
-             case kCTCellularDataRestricted: //关闭网络状态
 
-                 NSLog(@"Restricted");
 
-                 if(response){
 
-                     response(NO, AFNetworkReachabilityStatusNotReachable); // AFNetworkReachabilityStatusNotReachable 网络不通
 
-                 }
 
-                 break;
 
-             case kCTCellularDataNotRestricted:{
 
-                 // WLAN
 
-                 //2.2已经开启网络权限 监听网络状态
 
-                 
 
-                 [self addReachabilityManagerDidFinishLaunching:^(BOOL isAlways, AFNetworkReachabilityStatus status) {
 
-                     if(response){
 
-                         response(YES, status);
 
-                     }
 
-                 }];
 
-                 break;
 
-             }
 
-                 
 
-             case kCTCellularDataRestrictedStateUnknown:{
 
-                 if(response){
 
-                     response(NO, AFNetworkReachabilityStatusUnknown); //没有授权
 
-                 }
 
-                 NSLog(@"Unknown");
 
-                 //2.3未知情况 (还没有遇到推测是有网络但是连接不正常的情况下)
 
-                 //                [self getAppInfo];
 
-                 break;
 
-             }
 
-                 
 
-             default:
 
-                 break;
 
-         }
 
-     };
 
- }
 
- /**
 
-  实时检查当前网络状态
 
-  */
 
- + (void)addReachabilityManagerDidFinishLaunching:(void (^)(BOOL isAlways, AFNetworkReachabilityStatus status))response{
 
-     AFNetworkReachabilityManager *afNetworkReachabilityManager = [AFNetworkReachabilityManager sharedManager];
 
-     //这个可以放在需要侦听的页面
 
-     //    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(afNetworkStatusChanged:) name:AFNetworkingReachabilityDidChangeNotification object:nil];
 
-     [afNetworkReachabilityManager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
 
-         switch (status) {
 
-             case AFNetworkReachabilityStatusNotReachable:{
 
-                 NSLog(@"网络不通:%@",@(status) );
 
-                 if(response){
 
-                     response(NO, AFNetworkReachabilityStatusReachableViaWiFi);
 
-                 }
 
-                 break;
 
-             }
 
-             case AFNetworkReachabilityStatusReachableViaWiFi:{
 
-                 NSLog(@"网络通过WIFI连接:%@",@(status));
 
-                 if(response){
 
-                     response(YES, AFNetworkReachabilityStatusReachableViaWiFi);
 
-                 }
 
-                 
 
-                 break;
 
-             }
 
-             case AFNetworkReachabilityStatusReachableViaWWAN:{
 
-                 NSLog(@"网络通过蜂窝移动:%@",@(status) );
 
-                 if(response){
 
-                     response(YES, AFNetworkReachabilityStatusReachableViaWWAN);
 
-                 }
 
-                 
 
-                 //                if (self.mallConfigModel == nil) {
 
-                 //                    [self getInfo_application:application didFinishLaunchingWithOptions:launchOptions];
 
-                 //                }
 
-                 break;
 
-             }
 
-             default:
 
-                 break;
 
-         }
 
-     }];
 
-     
 
-     [afNetworkReachabilityManager startMonitoring];  //开启网络监视器;
 
- }
 
- @end
 
 
  |