ios - 如何在 iOS 中连接或断开 wifi 时收到通知?

标签 ios cocoa-touch wifi reachability

我正在尝试让 iOS 在建立或断开 wifi 连接时通知我的应用。

我在装有 iOS 4.3.5 和 5.1 的 iPhone 和 iPad 上尝试了以下代码:

- (void)startWifiNotifier {
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(statusUpdated:) 
                                                 name:kReachabilityChangedNotification 
                                               object:nil];

    Reachability *wifi = [Reachability reachabilityForLocalWiFi];
    [wifi startNotifier];
    NSLog(@"Wifi status: %i", [wifi currentReachabilityStatus]);
    NSLog(@"Notifier started");
}

- (void)statusUpdated:(NSNotification *)notice {
    NetworkStatus s = [[notice object] currentReachabilityStatus];
    if(s == NotReachable) {
        NSLog(@"Wifi disconnected");
    } else {
        NSLog(@"Wifi connection established");
    }
}

问题是我的回调“statusUpdated”永远不会被调用。我知道这应该按原样工作,但我尝试进入和离开 wifi 范围(因此连接和断开连接)并打开和关闭 wifi 路由器以强制断开连接,我的回调从未被调用。

我也试过这个:

@private
    Reachability *wifi;
...

- (void) startTimerLog {
   wifi = [Reachability reachabilityForLocalWiFi];
   [self timerLog];
}

- (void) timerLog {
    NSLog(@"Reachability: %i", [wifi currentReachabilityStatus]);
    [self performSelector:@selector(timerLog) withObject:nil afterDelay:0.5];    
}

并在相同的场景下对其进行了测试,它运行良好。然而,这不是我需要的方法,我更需要通知来调用我的回调。

我还需要做些什么才能使通知程序正常工作吗?

最佳答案

使用这个库 http://huytd.github.io/datatify/它非常易于使用和定制。 setCallback 方法将帮助您检测连接何时更改

关于ios - 如何在 iOS 中连接或断开 wifi 时收到通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12629671/

相关文章:

ios - 如何从 JSON 响应中获取 userID 而 JSON 文本不是以数组或对象开头以及允许未设置片段的选项

ios - 来回更改 UIImages

objective-c - 您如何检测 UILabel 在 Cocoa Touch 中包含从右到左的语言?

objective-c - 暂停 Objective-C 运行时循环以获取用户输入

ios - UITableView :reloadSectionIndexTitles animated correct way

javascript - Node dbus-native - 使用 connMan 连接到 WiFi 服务时传递密码

ios - 是否有任何 iOS 粒子系统库

javascript - 如何在 react-native 中单击抽屉导航的右键单击打开下一个屏幕?

wifi - 在 Windows 10 中启用/禁用热点虚拟 Wifi 时出错

Android Wifi Direct 软 AP 配置