【问题标题】:Checking if there is an active internet connection iPhone situation检查是否有活动的互联网连接 iPhone 情况
【发布时间】:2014-07-30 15:22:27
【问题描述】:

我想检查用户是否有活动的互联网连接。这就是我实现它的方式。它似乎工作正常,但问题是它总是显示我的 iPhone 模拟器上没有连接(uialert 出现),即使我的 wifi 打开或关闭。有谁知道我做错了什么? 感谢您的帮助!

Reachability *r= [Reachability reachabilityWithHostName:@"http://www.google.com"];
    NetworkStatus internetStatus= [r currentReachabilityStatus];

 if ((internetStatus != ReachableViaWiFi) && (internetStatus != ReachableViaWWAN))
    {

        UIAlertView *alert= [[UIAlertView alloc] initWithTitle:@"No internet" message:@"No internet connection found. Please try again later"
                                                      delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alert show];
        [alert release];
    }

 else {

 // execute code in app

 }

【问题讨论】:

    标签: iphone objective-c reachability internet-connection


    【解决方案1】:

    这就是我在我的应用中的做法:

    Reachability *reachability = [Reachability reachabilityForInternetConnection];
    NetworkStatus internetStatus = [reachability currentReachabilityStatus];
    
    if(internetStatus == NotReachable) {
        UIAlertView *errorView;
    
        errorView = [[UIAlertView alloc]
                     initWithTitle: NSLocalizedString(@"Network error", @"Network error")
                     message: NSLocalizedString(@"No internet connection found, this application requires an internet connection to gather the data required.", @"Network error")
                     delegate: self
                     cancelButtonTitle: NSLocalizedString(@"Close", @"Network error") otherButtonTitles: nil];
    
        [errorView show];
        [errorView autorelease];
    }
    

    它所做的是检查互联网连接,而不是它是否可以到达域。如果没有互联网连接(wifi 或蜂窝),它将显示 UIAlertView 消息(本地化)。

    【讨论】:

      【解决方案2】:

      不要检查。无线电经常在可达性报告没有网络后立即开始打开并建立连接(可达性报告没有网络可能是启动此过程的原因,因此几秒钟后它自己的答案就会变为错误。)

      【讨论】:

      • 抱歉,您所说的“收音机”是什么意思?而且我也听过之前的用户说不勾选,应用商店会拒绝?
      • 我有三个应用商店批准的应用程序都需要网络活动,我对此进行了相当多的研究。如果您不想,您不必检查可达性详细信息,我怀疑大多数应用程序都不需要。但是,如果应用程序需要网络但不存在网络,则您确实需要在应用程序中具有用户友好的行为。这意味着不会冻结、挂起,并且如果应用需要互联网但不可用,肯定会显示警报或类似信息。
      猜你喜欢
      • 1970-01-01
      • 2013-07-17
      • 2018-01-21
      • 2011-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-03
      • 1970-01-01
      相关资源
      最近更新 更多