028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

reachabilityios网络连接判断

reachability ios网络连接判断 

十余年的远安网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整远安建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联公司从事“远安网站设计”,“远安网站推广”以来,每个客户项目都认真落实执行。

//Reachability.h

import 

import 

typedef enum { NotReachable = 0, ReachableViaWiFi, ReachableViaWWAN } NetworkStatus;

define kReachabilityChangedNotification @"kNetworkReachabilityChangedNotification"

@interface Reachability: NSObject { BOOL localWiFiRef; SCNetworkReachabilityRef reachabilityRef; }

//reachabilityWithHostName- Use to check the reachability of a particular host name. 

//reachabilityWithAddress- Use to check the reachability of a particular IP address. 

//reachabilityForInternetConnection- checks whether the default route is available.
// Should be used by applications that do not connect to a particular host

//reachabilityForLocalWiFi- checks whether a local wifi connection is available.

//Start listening for reachability notifications on the current run loop

//Reachability.m

import 

import 

import 

import 

import 

import 

import 

import "Reachability.h"

define kShouldPrintReachabilityFlags 1

static void PrintReachabilityFlags(SCNetworkReachabilityFlags flags, const char* comment) {

if kShouldPrintReachabilityFlags

NSLog(@"Reachability Flag Status: %c%c %c%c%c%c%c%c%c %s\n",
        (flags & kSCNetworkReachabilityFlagsIsWWAN)                  ? 'W' : '-',
        (flags & kSCNetworkReachabilityFlagsReachable)            ? 'R' : '-',

        (flags & kSCNetworkReachabilityFlagsTransientConnection)  ? 't' : '-',
        (flags & kSCNetworkReachabilityFlagsConnectionRequired)   ? 'c' : '-',
        (flags & kSCNetworkReachabilityFlagsConnectionOnTraffic)  ? 'C' : '-',
        (flags & kSCNetworkReachabilityFlagsInterventionRequired) ? 'i' : '-',
        (flags & kSCNetworkReachabilityFlagsConnectionOnDemand)   ? 'D' : '-',
        (flags & kSCNetworkReachabilityFlagsIsLocalAddress)       ? 'l' : '-',
        (flags & kSCNetworkReachabilityFlagsIsDirect)             ? 'd' : '-',
        comment
        );

endif

}

@implementation Reachability static void ReachabilityCallback(SCNetworkReachabilityRef target, SCNetworkReachabilityFlags flags, void* info) {

pragma unused (target, flags)

NSCAssert(info != NULL, @"info was NULL in ReachabilityCallback");
NSCAssert([(NSObject*) info isKindOfClass: [Reachability class]], @"info was wrong class in ReachabilityCallback");//We're on the main RunLoop, so an NSAutoreleasePool is not necessary, but is added defensively// in case someon uses the Reachablity object in a different thread.NSAutoreleasePool* myPool = [[NSAutoreleasePool alloc] init];

Reachability* noteObject = (Reachability*) info;// Post a notification to notify the client that the network reachability changed.[[NSNotificationCenter defaultCenter] postNotificationName: kReachabilityChangedNotification object: noteObject];

[myPool release];

}

pragma mark Network Flag Handling

//appcontroller

//网络状态改变

} -(void) updateInterfaceWithReachability:(Reachability*) curReach { NetworkStatus netStatus = [curReach currentReachabilityStatus]; //BOOL connectionRequired= [curReach connectionRequired]; if(firstComeIn){ firstComeIn=false; return; } switch (netStatus) { case NotReachable: //没有连接 {

        break;
    }    case ReachableViaWWAN: //3g/GPRS
    {        break;
    }    case ReachableViaWiFi:  //wifi
    {        break;
    }
}

文章标题:reachabilityios网络连接判断
文章出自:http://www.tsicrk.com/article/gcjojh.html

其他资讯

让你的专属顾问为你服务

5.4610s