调用NEHotspotHelper.register永远不会返回

时间:2016-12-12 07:05:46

标签: ios wificonfiguration networkextension nehotspothelper

我正在开发一款需要自动连接到WiFi网络的iOS应用。我们曾要求获得Apple批准的NEHotspotHelper扩展程序。

现在我正在尝试自动连接到WiFi网络。但是对方法 NEHotspotHelper.register 的调用永远不会返回。我已在应用的授权文件中添加了权利 com.apple.developer.networking.HotspotHelper ,并且还使用了新创建的配置文件,其中启用了所述权利。试着从上周开始工作。看起来像我发现很难捕捉的小东西。请帮忙。

以下是我的代码

if let strWiFi =  UserDefaults.standard.value(forKey:"WiFiSSID") as? String {
     let queue = DispatchQueue(label: "com.mycompany.myapp")
     NEHotspotHelper.register(options: nil, queue: queue,
     handler: {(_ cmd: NEHotspotHelperCommand) -> Void in
     if cmd.commandType == .evaluate || cmd.commandType == .filterScanList {
     var hotspot:NEHotspotNetwork?
     for network: NEHotspotNetwork in cmd.networkList! {
     print("network name:\(network.ssid)")
     if (network.ssid == strWiFi) {
     network.setConfidence(.high)
     let strPassword = UserDefaults.standard.value(forKey:"WiFiPassword") as? String
     network.setPassword(strPassword!)
     hotspot = network
     }
     }
     let response = cmd.createResponse(.success)

     if(hotspot != nil) {
     response.setNetwork(hotspot!)
     }

     response.deliver()
     }
     })

非常感谢任何帮助!

编辑:现在,当我尝试断开连接然后重新连接回WiFi时,注册成功,但只返回当前连接网络的详细信息。我需要所有WiFi网络的详细信息。

1 个答案:

答案 0 :(得分:1)

需要输入设置 - > Wi-fi,帮助只有在进入屏幕时执行,我也试过自动连接,但用户需要在第一时间选择网络连接。 如果用户选择连接网络一次,下一次可能会自动连接,因为可以输入命令Maintain。

查看更多:https://forums.developer.apple.com/message/138756#138756