对 NEHotspotHelper.register 的调用永远不会返回

2024-02-18

我正在开发一个 iOS 应用程序,它需要自动连接到 WiFi 网络。我们已向 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()
     }
     })

非常感谢任何帮助!

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


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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对 NEHotspotHelper.register 的调用永远不会返回 的相关文章

随机推荐