判断是否有互联网,包括 wifi 或数据 (Swift 3)

Figure out if there is internet or not, including wifi or data (Swift 3)

我在网上找到了一个可达性代码,不幸的是它只适用于 wifi 网络。我需要一个代码来确定一个人是否有互联网连接:这包括 wifi 和数据。非常感谢任何帮助!

您可以使用 Reachability 框架。使用 pod 'ReachabilitySwift', '~> 3'.

通过 CocoaPods 安装

使用方法:
声明一个全局变量:

var reachability = Reachability()!

添加观察者并在您的 viewWillAppear:

中启动通知程序
override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(true)

    NotificationCenter.default.addObserver(self, selector: #selector(self.reachabilityChanged),name: ReachabilityChangedNotification,object: reachability)
    do{
        try reachability.startNotifier()
    }catch{
        print("could not start reachability notifier")
    }
}

添加检测网络变化的功能:

func reachabilityChanged(note: NSNotification) {
    reachability = note.object as! Reachability
    if !reachability.isReachable {
        // Network not reachable
    }
    else{
        if reachability.isReachableViaWiFi {
            // Reachable via WiFi
        } else {
            // Reachable via Cellular
        }
    }
}