网络可达性

一个用 Swift 编写的全新、简洁且精简的网络接口可达性库。

备注

可以使用内置的 Combine 发布器或异步流来监控网络可达性变化。

虽然可以创建自定义实例,但提供了一个默认的 shared 实例。

底层使用原生的 NWPathMonitor 来提供库的功能。

基本用法

简单示例

import Reachability

if Reachability.shared.currentPath.isReachable {
    print("We are online")
} else {
    print("No internet")
}

SwiftUI

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")
        }
    }
}

使用 Combine

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)

使用 AsyncStream

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 文件。