我想知道如何检查用户是否通过WIFI或蜂窝数据3G或4G连接到互联网。
另外,我也不想检查一个网站是否可以访问,我想检查设备上是否有互联网。我试着查看互联网,我所看到的只是他们检查网站是否可以访问或不使用Rechability
类。
我想在用户打开我的应用程序时检查他是否有互联网。
我使用的是目标-C的Xcode6。
发布于 2015-07-31 09:24:18
使用此代码并导入Reachability.h
文件
if ([[Reachability reachabilityForInternetConnection]currentReachabilityStatus]==NotReachable)
{
//connection unavailable
}
else
{
//connection available
}
发布于 2015-07-31 10:50:23
首先从这个链接下载Reachability类:
在AppDelegate.h中添加可实现性实例
@property (nonatomic) Reachability *hostReachability;
@property (nonatomic) Reachability *internetReachability;
@property (nonatomic) Reachability *wifiReachability;
在AppDelegate中导入可实现性,只需在应用程序.m中复制和通过这段代码
- (id)init
{
self = [super init];
if (self != nil)
{
//[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil];
NSString *remoteHostName = @"www.google.com";
self.hostReachability = [Reachability reachabilityWithHostName:remoteHostName];
[self.hostReachability startNotifier];
self.internetReachability = [Reachability reachabilityForInternetConnection];
[self.internetReachability startNotifier];
self.wifiReachability = [Reachability reachabilityForLocalWiFi];
[self.wifiReachability startNotifier];
}
return self;
}
将此方法添加到公共类中。
/*================================================================================================
Check Internet Rechability
=================================================================================================*/
+(BOOL)checkIfInternetIsAvailable
{
BOOL reachable = NO;
NetworkStatus netStatus = [APP_DELEGATE1.internetReachability currentReachabilityStatus];
if(netStatus == ReachableViaWWAN || netStatus == ReachableViaWiFi)
{
reachable = YES;
}
else
{
reachable = NO;
}
return reachable;
}
注意,APP_DELEGATE1是AppDelegate的一个实例。
/* AppDelegate object */
#define APP_DELEGATE1 ((AppDelegate*)[[UIApplication sharedApplication] delegate])
使用此方法,您可以在应用程序中的任何地方检查internet连接。
发布于 2015-07-31 09:30:31
希望这能帮助您在Wifi模式下进行网络连接:
Utils.h
#import <Foundation/Foundation.h>
@interface Utils : NSObject
+(BOOL)isNetworkAvailable;
@end
utils.m
+ (BOOL)isNetworkAvailable
{
CFNetDiagnosticRef dReference;
dReference = CFNetDiagnosticCreateWithURL (NULL, (__bridge CFURLRef)[NSURL URLWithString:@"www.apple.com"]);
CFNetDiagnosticStatus status;
status = CFNetDiagnosticCopyNetworkStatusPassively (dReference, NULL);
CFRelease (dReference);
if ( status == kCFNetDiagnosticConnectionUp )
{
NSLog (@"Connection is Available");
return YES;
}
else
{
NSLog (@"Connection is down");
return NO;
}
}
//现在在所需的类中使用此方法
- (IBAction)MemberSubmitAction:(id)sender {
if([Utils isNetworkAvailable] ==YES){
NSlog(@"Network Connection available");
}
}
https://stackoverflow.com/questions/31742601
复制相似问题