尝试使用 Alamofire 检查 iOS 设备上的互联网连接
Attempt to check internet connection on iOS device with Alamofire
我使用以下代码检查互联网连接:
class Reachability {
let networkReachabilityManager = Alamofire.NetworkReachabilityManager(host: "www.google.com")
func checkForReachability() {
self.networkReachabilityManager?.listener = { status in
print("Network Status: \(status)")
switch status {
case .notReachable:
print("no internet connection detected")
//Show error here (no internet connection)
case .reachable(_), .unknown:
print("internet connection availible")
}
}
self.networkReachabilityManager?.startListening()
}
}
连接存在时,成功调用.reachable中的block。但是在没有连接的情况下没有任何调用,为什么?
我是这样称呼它的(保留对class的引用,所以它没有发布)
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
let reachabilityManager = Reachability()
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
window = UIWindow(frame: UIScreen.main.bounds)
reachabilityManager.checkForReachability()
return true
}
创建公共 class 以检查连接性
import Foundation
import Alamofire
class Connectivity {
class func isConnectedToInternet() -> Bool {
return NetworkReachabilityManager()!.isReachable
}
}
并在需要的地方调用函数
if !Connectivity.isConnectedToInternet() {
// show Alert
return
}
创建一个名为 Connectivity
的 swift class。您可以使用 Alamofire
中的 NetworkReachabilityManager
class 并根据需要配置 isConnectedToInternet()
方法。我只检查设备是否连接到互联网。
import Foundation
import Alamofire
class Connectivity {
class func isConnectedToInternet() ->Bool {
return NetworkReachabilityManager()!.isReachable
}
}
用法 -
if Connectivity.isConnectedToInternet() {
print("Yes! internet is available.")
// do some tasks..
}
或者你可以简单地这样做 -
if let err = error as? URLError, err.code == URLError.Code.notConnectedToInternet{
// No internet connection
}else{
// your other errors
}
我使用以下代码检查互联网连接:
class Reachability {
let networkReachabilityManager = Alamofire.NetworkReachabilityManager(host: "www.google.com")
func checkForReachability() {
self.networkReachabilityManager?.listener = { status in
print("Network Status: \(status)")
switch status {
case .notReachable:
print("no internet connection detected")
//Show error here (no internet connection)
case .reachable(_), .unknown:
print("internet connection availible")
}
}
self.networkReachabilityManager?.startListening()
}
}
连接存在时,成功调用.reachable中的block。但是在没有连接的情况下没有任何调用,为什么?
我是这样称呼它的(保留对class的引用,所以它没有发布)
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
let reachabilityManager = Reachability()
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
window = UIWindow(frame: UIScreen.main.bounds)
reachabilityManager.checkForReachability()
return true
}
创建公共 class 以检查连接性
import Foundation
import Alamofire
class Connectivity {
class func isConnectedToInternet() -> Bool {
return NetworkReachabilityManager()!.isReachable
}
}
并在需要的地方调用函数
if !Connectivity.isConnectedToInternet() {
// show Alert
return
}
创建一个名为 Connectivity
的 swift class。您可以使用 Alamofire
中的 NetworkReachabilityManager
class 并根据需要配置 isConnectedToInternet()
方法。我只检查设备是否连接到互联网。
import Foundation
import Alamofire
class Connectivity {
class func isConnectedToInternet() ->Bool {
return NetworkReachabilityManager()!.isReachable
}
}
用法 -
if Connectivity.isConnectedToInternet() {
print("Yes! internet is available.")
// do some tasks..
}
或者你可以简单地这样做 -
if let err = error as? URLError, err.code == URLError.Code.notConnectedToInternet{
// No internet connection
}else{
// your other errors
}