使用 'com.apple.system.config.network_change' 通知来检测网络可达性更改是否安全?

Is it safe to use 'com.apple.system.config.network_change' notification to detect network reachability changes?

使用 'com.apple.system.config.network_change' 通知来检测网络可达性变化是否安全?或者它被认为是私有的API?现在我的代码如下所示:

CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(),
                                nil,
                                callback,
                                "com.apple.system.config.network_change" as CFString,
                                nil,
                                .deliverImmediately);

然后在回调中我回复了通知。

问题是 iOS 中的可达性并不总是检测到 Wi-Fi 切换。例如,如果我们从一个 Wi-Fi AP 切换到系统已经知道的另一个(因为我们过去使用过它),那么它发生得太快以至于没有 'Disconnected' 事件,我无法跟踪实际情况开关时刻。上述解决方案有效,但我确定我的应用程序是否不会因在 App Store 中发布而被拒绝。

谢谢!

我无法完全回答你的问题,但我处理可达性变化的方式是使用this"lib",这在聆听每一个变化时都非常准确。我想如果它符合您检测两个 Wi-Fi 之间切换的特定时刻的需要,您可以尝试一下。

如果您不想导入它 - 这是一个 非常小的 文件 -,您可以看看它是如何 works - basically using SCNetworkReachability.

目前认为是 public API。有关详细信息,请参阅此主题:

https://forums.developer.apple.com/message/334035#334035