首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检查iOS设备上的互联网连接?

如何检查iOS设备上的互联网连接?
EN

Stack Overflow用户
提问于 2015-07-31 09:22:52
回答 10查看 45.1K关注 0票数 16

我想知道如何检查用户是否通过WIFI或蜂窝数据3G或4G连接到互联网。

另外,我也不想检查一个网站是否可以访问,我想检查设备上是否有互联网。我试着查看互联网,我所看到的只是他们检查网站是否可以访问或不使用Rechability类。

我想在用户打开我的应用程序时检查他是否有互联网。

我使用的是目标-C的Xcode6。

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2015-07-31 09:24:18

使用此代码并导入Reachability.h文件

代码语言:javascript
运行
复制
if ([[Reachability reachabilityForInternetConnection]currentReachabilityStatus]==NotReachable)
    {
         //connection unavailable
    }
    else
    {
         //connection available
    }
票数 21
EN

Stack Overflow用户

发布于 2015-07-31 10:50:23

首先从这个链接下载Reachability类:

从吉突布回收

AppDelegate.h中添加可实现性实例

代码语言:javascript
运行
复制
@property (nonatomic) Reachability *hostReachability;
@property (nonatomic) Reachability *internetReachability;
@property (nonatomic) Reachability *wifiReachability;

在AppDelegate中导入可实现性,只需在应用程序.m中复制和通过这段代码

代码语言:javascript
运行
复制
- (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;
}  

将此方法添加到公共类中。

代码语言:javascript
运行
复制
/*================================================================================================
 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的一个实例。

代码语言:javascript
运行
复制
/* AppDelegate object */
#define APP_DELEGATE1 ((AppDelegate*)[[UIApplication sharedApplication] delegate])  

使用此方法,您可以在应用程序中的任何地方检查internet连接。

票数 6
EN

Stack Overflow用户

发布于 2015-07-31 09:30:31

希望这能帮助您在Wifi模式下进行网络连接:

Utils.h

代码语言:javascript
运行
复制
 #import <Foundation/Foundation.h>
 @interface Utils : NSObject

 +(BOOL)isNetworkAvailable;

 @end

utils.m

代码语言:javascript
运行
复制
 + (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;
      }
    }

//现在在所需的类中使用此方法

代码语言:javascript
运行
复制
- (IBAction)MemberSubmitAction:(id)sender {
   if([Utils isNetworkAvailable] ==YES){

      NSlog(@"Network Connection available");
   }

 }
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31742601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档