一个用 Swift 编写的全新、简洁且精简的网络接口可达性库。
可以使用内置的 Combine 发布器或异步流来监控网络可达性变化。
虽然可以创建自定义实例,但提供了一个默认的 shared
实例。
底层使用原生的 NWPathMonitor
来提供库的功能。
import Reachability
if Reachability.shared.currentPath.isReachable {
print("We are online")
} else {
print("No internet")
}
import SwiftUI
import Reachability
struct SomeView: View {
@ObservedObject var reachability = Reachability.shared
var body: some View {
if reachability.currentPath.isReachable {
// Show some data loaded from the internet
} else {
Text("No internet connection")
}
}
}
import Reachability
var subscriptions = Set<AnyCancellable>()
Reachability.shared.publisher
.sink { path in
if path.isReachable {
print("We are online")
} else {
print("No internet")
}
}
.store(in: &subscriptions)
import Reachability
Task {
for await path in Reachability.shared.stream {
if path.isReachable {
print("We are online")
} else {
print("No internet")
}
}
}
可以使用 Swift Package Manager 安装 Reachability,这是一个内置于 Xcode 的依赖管理工具。
在 Xcode 中,转到File / Swift Packages / Add Package Dependency… 并输入软件包仓库 URL https://github.com/Alecrim/Reachability.git
,然后按照说明进行操作。
要移除依赖项,请选择项目并打开Swift Packages(在Build Settings旁边)。
网络可达性 | Swift | Xcode | 平台 |
---|---|---|---|
Reachability 1.0 | Swift 5.5 | Xcode 13.0 | macOS 10.15 / iOS 13.0 / tvOS 13.0 / watchOS 6.0 |
Reachability 在 MIT 许可证下可用。 有关更多信息,请参见 LICENSE 文件。