一次 Internet 连接检查 swift
One time Internet Connection Check swift
我需要检查一次用户的互联网连接。
我想到了类似 Device.isConnectedToTheInternet
的东西,但我没有找到类似的东西...
随着时间的推移,如果找到每个解决方案就像一个互联网监视器,但这并不是我所需要的。
有人出主意吗?
谢谢,Boothosh
参见NWPathMonitor().currentPath。它会告诉你当前的路径。这只是偶尔有用,因为“连接到互联网”不是一个有意义的条件。 “互联网”没有具体的定义。但是您可以使用 NWPath 来回答您可能正在寻找的一些问题。事实上,有一个 NSPath 可用并不意味着您实际上可以连接到“互联网”上的某些东西。 唯一 知道的方法是发送一个数据包并取回一个数据包。因此,如果您真正的问题是“我可以连接到特定主机吗”,那么您将需要向该主机发送数据包(这仍然不能证明您将来可以向该主机发送数据包)。
综上所述,询问“如果我尝试连接,它肯定会失败吗?”有一点 UI 级的用处。 currentPath
可以帮助您回答这个问题。它只是不能告诉你它是否会成功。
正如 Rob Napier 所提到的,看起来唯一可用的是 NWPathMonitor,您可以使用它来检查 'connectivity' 到某个位置,例如 www.google.com, or something else that would be relatively trustworthy to be available 24/7, or just the URL you are about to try and use. Here is a short HackingWithSwift tutorial 用于 NWPathMonitor。
我知道这不完全是你目前的情况,但在我的项目(和很多人的项目)中使用像 AlamoFire 这样的 API 是很常见的,并且有很多创建 GET/PUT/POST/DELETE 请求的有用性,当然还有一个 NetworkReachabilityManager,可用于为 'isConnectedToInternet' 的简单 true/false 结果创建一个方便的全局函数,如下所示:
/*
Connectivity
Struct
Utilizes AlamoFire to check for network availability.
isConnectedToInternet should return true in all cases the phone has access (Cellular, No cellular + wifi, Cellular + wifi, wifi)
*/
struct Connectivity {
static let sharedInstance = NetworkReachabilityManager()!
static var isConnectedToInternet:Bool {
let connected = self.sharedInstance.isReachable
return connected
}
}//end Connectivity
我需要检查一次用户的互联网连接。
我想到了类似 Device.isConnectedToTheInternet
的东西,但我没有找到类似的东西...
随着时间的推移,如果找到每个解决方案就像一个互联网监视器,但这并不是我所需要的。
有人出主意吗? 谢谢,Boothosh
参见NWPathMonitor().currentPath。它会告诉你当前的路径。这只是偶尔有用,因为“连接到互联网”不是一个有意义的条件。 “互联网”没有具体的定义。但是您可以使用 NWPath 来回答您可能正在寻找的一些问题。事实上,有一个 NSPath 可用并不意味着您实际上可以连接到“互联网”上的某些东西。 唯一 知道的方法是发送一个数据包并取回一个数据包。因此,如果您真正的问题是“我可以连接到特定主机吗”,那么您将需要向该主机发送数据包(这仍然不能证明您将来可以向该主机发送数据包)。
综上所述,询问“如果我尝试连接,它肯定会失败吗?”有一点 UI 级的用处。 currentPath
可以帮助您回答这个问题。它只是不能告诉你它是否会成功。
正如 Rob Napier 所提到的,看起来唯一可用的是 NWPathMonitor,您可以使用它来检查 'connectivity' 到某个位置,例如 www.google.com, or something else that would be relatively trustworthy to be available 24/7, or just the URL you are about to try and use. Here is a short HackingWithSwift tutorial 用于 NWPathMonitor。
我知道这不完全是你目前的情况,但在我的项目(和很多人的项目)中使用像 AlamoFire 这样的 API 是很常见的,并且有很多创建 GET/PUT/POST/DELETE 请求的有用性,当然还有一个 NetworkReachabilityManager,可用于为 'isConnectedToInternet' 的简单 true/false 结果创建一个方便的全局函数,如下所示:
/*
Connectivity
Struct
Utilizes AlamoFire to check for network availability.
isConnectedToInternet should return true in all cases the phone has access (Cellular, No cellular + wifi, Cellular + wifi, wifi)
*/
struct Connectivity {
static let sharedInstance = NetworkReachabilityManager()!
static var isConnectedToInternet:Bool {
let connected = self.sharedInstance.isReachable
return connected
}
}//end Connectivity