0

我正在尝试使用 NWPathMonitor 来检测互联网连接。我的网络设置只是一个连接到移动 4G 网络的路由器和一个通过以太网连接到路由器 LAN 端口之一的 Mac。我的代码如下:

import Cocoa
import NetworkExtension

@available(macOS 10.14, *)
@objc class ModernInternetMonitor: NSObject {
    
    @objc static let shared: ModernInternetMonitor? = ModernInternetMonitor()
    
    private let monitor = NWPathMonitor()
    
    override private init() {
        super.init()
        self.startMonitoring()
    }
    
    @objc func startMonitoring() {
        monitor.pathUpdateHandler = { path in

            if path.status == .satisfied {
                print("Yay! We have internet!")
            } else {
                print("Nope! We don't have internet!")
            }
        }
        let queue = DispatchQueue.global(qos: .background)
        monitor.start(queue: queue)
        
    }
    
}

我正在尝试做的是转到路由器Web界面并禁用4G。然后,我希望 NWPathMonitor 能够检测到缺乏互联网连接并再次触发更新关闭报告没有互联网,但这不会发生。如果我重新启动应用程序并断开 4G 连接,它总是报告互联网连接已满足。让我的代码检测到缺乏互联网的唯一方法是,如果我转到网络首选项并删除我的以太网接口。在这种情况下,代码会正确报告缺乏连接。我一定错过了一些重要的事情。我希望有更多专业知识的人能给我带来正确的方向。感谢您的关注。

4

0 回答 0