Swift-无法连接到开放热点

时间:2019-01-09 03:35:06

标签: ios swift nehotspothelper

我正在尝试使用NEHotspotConfigurationManager连接到开放的Wi-Fi网络,但没有任何运气。我已经确保我的应用具有正确的Hotspot Configuration Entitlement,并且正在运行的设备为iOS11。

这是我用来连接到开放网络的代码。

// MARK: - Connect to Hotspot
@available(iOS 11.0, *)
func connectToHotspot(completion: @escaping APConnectionStatusHandler) {
    let configuration = NEHotspotConfiguration.init(ssid: Constants.hotspotSSID)
    configuration.joinOnce = true

    NEHotspotConfigurationManager.shared.apply(NEHotspotConfiguration.init()) { connectionError in
        if let error = connectionError {
            debugPrint("Failed to automatically connect to \(Constants.hotspotSSID)")
            debugPrint(error)
            completion(false, error.localizedDescription)
        }
        else {
            debugPrint("Automatically connected to \(Constants.hotspotSSID)")
            completion(true, nil)
        }
    }
}
每次我使用以下命令填充

connectionError

Domain=NEHotspotConfigurationErrorDomain Code=1 "invalid SSID." 

我找不到任何有关此错误消息确切含义的信息。网络显示在我正在使用的设备的网络列表中。我拼写正确,并且无论我使用什么SSID字符串,错误消息都是相同的。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

也许您不应该使用Constant.hotspotSSID。

根据上述内容,我无法确定什么是“常量”或它是哪种数据类型。

这是我的想法,请尝试以下操作:

            let yourSSID: String = "SSID"
            let configuration = NEHotspotConfiguration.init(ssid: yourSSID)
            configuration.joinOnce = true
            NEHotspotConfigurationManager.shared.apply(configuration) {
                (error) in
                if error != nil {
                    print("Connect-> Failure!")
                } else {
                    print("Connect-> Success!")
                }
            }