GTNetMon
GTNetMon 是一个轻量级的 Swift 库,用于检测设备是否连接到互联网,它识别连接类型(Wi-Fi、蜂窝和网络等),并监视网络状态的变化。
使用 GTNetMon
类来访问所有可用的属性和方法。它是一个单例类,因此使用 shared
实例来访问其成员。
可用的属性包括
isConnected
:指示设备是否连接到互联网。connectionType
:连接类型作为GTNetMon.ConnectionType
值(见下文)。availableConnectionTypes
:在某个时刻设备可用的连接类型的集合。isExpensive
:当设备通过蜂窝网络连接到互联网时,指示连接是昂贵的。注意,当在 iOS 版本 >= 12.0 中使用时,此标志更准确。isMonitoring
:它指示是否正在监视网络状态的变化。
除了上述属性外,还有以下两个方法
startMonitoring()
:它开始监视网络状态的变化。stopMonitoring()
:它停止监视网络状态的变化。
重要
- 建议在 AppDelegate 类的
applicationDidBecomeActive(_:)
和applicationWillResignActive(_:)
方法中分别开始和停止监控。 - 类如果想要接收监控网络状态变化的通知,应该观察
GTNetMonNetworkStatusChangeNotification
通知。每当连接发生变化时,都会发布该通知。
其它
在 iOS >= 12.0 中,使用 iOS SDK 中的新 Network
框架来检索网络信息。在较旧的 iOS 版本中,则使用 SCNetworkReachability
API。
GTNetMon.ConnectionType
关于 GTNetMon.ConnectionType
是一个具有以下情况的 枚举:
- Wi-Fi
- 蜂窝
- 有线以太网
- 其他
- 未定义