ReachabilitySwift 5.2.3

ReachabilitySwift 5.2.3

测试已测试
Lang语言 SwiftSwift
许可 MIT
发布最后发布2024 年 5 月
SPM支持 SPM

维护者:Ashley Mills



  • Ashley Mills

Reachability.swift

Reachability.swift 是 Apple 的 Reachability 示例的替代品,使用闭包重写为 Swift。

它兼容 iOS (8.0 - 12.0),OSX (10.9 - 10.14) 和 tvOS (9.0 - 12.0)

灵感来自 https://github.com/tonymillion/Reachability

支持 Reachability.swift

Maintaining Reachability.swift is time-consuming. Updates, reviewing pull requests, responding to issues, and answering emails all take time.

If you're an iOS developer looking for a quick and easy way to create App Store screenshots, please try out my app Screenshot Producer

设备
布局 复制 本地化 导出      

别忘了 该仓库。这将增加其可见性,并鼓励他人贡献力量。

谢谢,Ash

遇到问题?

在提出问题之前,请阅读https://github.com/ashleymills/Reachability.swift/blob/master/CONTRIBUTING.md

安装

手动安装

只需将 Reachability.swift 文件放入您的项目中即可!这就是全部!

CocoaPods

CocoaPods 是 Cocoa 项目的依赖管理工具。要使用 CocoaPods 安装 Reachability.swift:

  1. 确保已安装 CocoaPods。(见 安装指南)。

  2. 更新您的 Podfile,包含以下内容

    use_frameworks!
    pod 'ReachabilitySwift'
  3. 运行 pod install

  1. 在您的代码中按照如下方式导入 Reachability:import Reachability

Carthage

Carthage 是一个分散式的依赖管理工具,它构建您的依赖和提供二进制框架。要使用 Carthage 安装 Reachability.swift:

  1. 通过 Homebrew 安装 Carthage。
$ brew update
$ brew install carthage
  1. github "ashleymills/Reachability.swift" 添加到您的 Cartfile。

  2. 运行 carthage update

  3. Reachability.frameworkCarthage/Build/iOS/ 目录拖动到 Xcode 项目 General 设置的 Linked Frameworks and Libraries 部分。

  4. $(SRCROOT)/Carthage/Build/iOS/Reachability.framework 添加到 Carthage 的运行脚本阶段的 Input Files

  5. 在您的代码中按照如下方式导入 Reachability:import Reachability

示例 - 闭包

注意:所有闭包都在 主线程 上执行。

//declare this property where it won't go out of scope relative to your listener
let reachability = Reachability()!

reachability.whenReachable = { reachability in
    if reachability.connection == .wifi {
        print("Reachable via WiFi")
    } else {
        print("Reachable via Cellular")
    }
}
reachability.whenUnreachable = { _ in
    print("Not reachable")
}

do {
    try reachability.startNotifier()
} catch {
    print("Unable to start notifier")
}

以及停止通知

reachability.stopNotifier()

示例 - 通知

注意:所有通知都是在主队列上发送的。

//declare this property where it won't go out of scope relative to your listener
let reachability = Reachability()!

//declare this inside of viewWillAppear

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

并且

@objc func reachabilityChanged(note: Notification) {

  let reachability = note.object as! Reachability

  switch reachability.connection {
  case .wifi:
      print("Reachable via WiFi")
  case .cellular:
      print("Reachable via Cellular")
  case .unavailable:
    print("Network not reachable")
  }
}

以及停止通知

reachability.stopNotifier()
NotificationCenter.default.removeObserver(self, name: .reachabilityChanged, object: reachability)

想帮忙吗?

修复了一个错误或有新功能?创建一个拉取请求并尝试一下!

告诉我!

如果你使用 Reachability.swift,请告诉我你的应用,我将在这里添加链接并告诉你的朋友们!

干杯,Ash