微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我试图在我的应用程序中使用 NWPathMonitor,但如果我关闭互联网连接,它总是响应连接有什么建议吗?

如何解决我试图在我的应用程序中使用 NWPathMonitor,但如果我关闭互联网连接,它总是响应连接有什么建议吗?

我正在尝试使用 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 连接,它总是报告互联网连接已满足。让我的代码检测到互联网不足的唯一方法是,如果我转到网络首选项并删除我的以太网接口。在这种情况下,代码会正确报告缺乏连接。我一定是遗漏了一些重要的东西。我希望有更多专业知识的人可以带我走向正确的方向。感谢您的关注。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。