首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可可:确定wake的网络可用性

可可:确定wake的网络可用性
EN

Stack Overflow用户
提问于 2015-08-05 12:15:27
回答 1查看 321关注 0票数 0

我正在编写一个Cocoa应用程序,它需要执行不同的操作,这取决于当系统从睡眠中醒来时是否存在互联网连接。我使用NSWorkspace.sharedWorkspace()的通知中心接收如下所示的唤醒通知:

代码语言:javascript
复制
NSWorkspace.sharedWorkspace().notificationCenter.addObserver(self, selector: "onSystemWake:", name: NSWorkspaceDidWakeNotification, object: nil)

我的问题是onSystemWake:的实现。当系统唤醒时,我使用可达性示例代码来查询是否存在internet连接:

代码语言:javascript
复制
@objc func onSystemWake(notif: NSNotification) {
    let status = internetReachability.currentReachabilityStatus()
    if status.value == NotReachable.value {
        // Internet not reachable, do some stuff.
    } else {
        // Internet reachable, do some other stuff.
    }
}

当我在家的时候,把我的笔记本电脑放在睡梦中,然后再一次唤醒它,这似乎是很好的。然而,如果笔记本电脑在睡眠期间切换到另一个已知的WiFi (例如,当我到达我的大学时),上面的代码会检测到,当笔记本在新的位置从睡眠中醒来时,就没有互联网可达性--尽管实际上有一个已知的WiFi可用。

我假设造成这种情况的原因是,当我的应用程序接收到系统唤醒通知时,网络连接仍在建立过程中。

在收到系统唤醒通知后,我可以将internet可达性检查延迟x秒钟,但这似乎是一个非常糟糕的解决方案,因为一些膝上型计算机和网络组合的连接时间可能比其他的要长。

当网络适配器(有线和无线)完成连接尝试后,是否有一种通知方式?

EN

回答 1

Stack Overflow用户

发布于 2015-08-05 13:35:04

最好是宣称它是什么网络!因为也许你是连接到一个网络,这是一个网络!但它并没有连接到互联网!

对于互联网可达性,我使用下面的代码,它对我在iOS上工作很好!

代码语言:javascript
复制
        let domain: NSURL = NSURL(string : "http://google.com/")!
    let req : NSMutableURLRequest = NSMutableURLRequest(URL: domain)
    req.HTTPMethod = "POST"
    let data = "\0"
    req.HTTPBody = data.dataUsingEncoding(NSUTF8StringEncoding)
    NSURLConnection.sendAsynchronousRequest(req, queue: NSOperationQueue.mainQueue())
        {
            (respons,data,error) in
            print(respons)
            if respons == nil
            {
\\ Internet is not Active!!
            }
            else
            {
\\ Internet is Active!!
                }
        }

上面的代码是说谷歌意味着互联网!如果我能到达google.com,那就意味着我已经连接到某个网络了!但如果不是我就不会了!

问题是,如果你使用的是一个网络,这就像一个公司的网络,而网络并没有为你提供一个互联网连接!以上代码不能满足您的需要!在这种情况下,当然取决于您的网络,您必须要求其他的东西!就像路由器!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31832254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档