首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何测试iPhone连接到互联网上的快捷4?

如何测试iPhone连接到互联网上的快捷4?
EN

Stack Overflow用户
提问于 2017-11-01 02:43:27
回答 1查看 2.1K关注 0票数 1

对于Swift 4/xcode:

我在互联网上搜索了这个问题的解决方案,但我还没有找到一个涵盖所有基础的明确、全面的答案。有几个Stack在一定程度上回答了这个问题,包括快速的具体答案,如这些AshleyMills可达性,但许多答案都很陈旧,而且不全面。

  1. 我想要的方法检查互联网连接,而不仅仅是连接到wifi。一些在线的方法只是检查是否连接到wifi,但不确认互联网是通过wifi提供的。我需要一个只在检测到internet连接时才返回true的方法。
  2. 对于蜂窝数据的使用,此方法还必须返回true。是的,Wi可以提供互联网连接,但数据也可以。该方法需要足够全面,如果提供了蜂窝/wifi互联网,则返回true。 最后是一张便条。事实上,网上没有一个完整的快速答案来检查所有的框,这让我怀疑我处理这个问题的方法是否在更普遍的意义上是不正确的。我的应用程序需要从数据库中加载数据,这就是它需要互联网连接的原因。对于当今流行的应用程序来说,这是一件非常普遍的事情。应用程序不会因为试图在没有互联网连接的情况下加载数据而崩溃。我认为他们所做的(这是这个问题的基础)是这样的:
代码语言:javascript
复制
if doesHaveInternetConnection{
    //run loading data functions
}else{
    //don't run loading data functions
}

难道不是这样做的吗?如果没有,有什么更好的方法来处理这个问题呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-01 02:54:32

这里是发出网络请求时URLError的列表。在列表中,有一个名为notConnectedToInternet的枚举值。当您发出网络请求而失败时,请查看错误代码,以找出它是否由于没有连接或其他原因。

或者,您也可以在服务器上托管一个health-check端点.在提出任何请求之前,向这个终点提出请求.如果请求成功,您可以放心,有互联网连接。不过,我强烈建议采用第一种选择。

示例

注意:下面的代码在Swift 3中。

代码语言:javascript
复制
URLSession.shared.dataTask(with: *URLRequest*) { (data, response, error) -> Void in
    if error != nil {
        if let e = error as? URLError, e.code == .notConnectedToInternet {
            //Not connected to internet
        } else {
            //Some other error
        }
    } else {
        //The request was successful
    }
}.resume()
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47047438

复制
相关文章

相似问题

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