在ios中以编程方式连接到WiFi

时间:2013-03-13 13:59:47

标签: api ios5 wifi

我的问题是关于IOS中的私有API。是否有一些API来管理WiFi连接?例如,我正在使用Apple80211.framework来扫描WiFi网络,但它无法连接。

我的应用不适用于appstore。

4 个答案:

答案 0 :(得分:4)

我们可以在iOS 11公共API之后以编程方式连接wifi网络。您可以使用SSID和密码连接wifi,如下所示。

夫特

var configuration = NEHotspotConfiguration.init(ssid: "wifi name", passphrase: "wifi password", isWEP: false)
configuration.joinOnce = true

NEHotspotConfigurationManager.shared.apply(configuration) { (error) in
    if error != nil {
        //an error accured
        print(error?.localizedDescription)
    }
    else {
        //success
    }
}

别忘了import NetworkExtension

答案 1 :(得分:3)

去年我遇到了这个问题,经过大量挖掘后,我遇到了一个名为SOLStumbler的有用示例。要使此应用程序正常运行,您的设备必须越狱。我修改了SOLStumbler并在github上发布了一个示例应用程序。它使用IPConfiguration包访问Apple80211框架,该框架允许您关联到网络。自述文件包含自定义构建说明。

https://github.com/devinshively/wifiAssociate

答案 2 :(得分:2)

不再需要私有API!在iOS 11中,Apple提供了一个公共API,您可以使用它以编程方式加入WiFi网络,而无需离开您的应用程序。

您需要使用的课程称为NEHotspotConfiguration

要使用它,您需要在应用功能(Adding Capabilities)中启用Hotspot功能。快速工作的例子:

NEHotspotConfiguration *configuration = [[NEHotspotConfiguration
 alloc] initWithSSID:@“SSID”];
configuration.joinOnce = YES;

[[NEHotspotConfigurationManager sharedManager] applyConfiguration:configuration completionHandler:nil];

这将提示用户加入“SSID”WiFi网络。在用户离开应用程序之前,它将保持与WiFi的连接。

这不适用于使用实际设备运行此代码所需的模拟器,以使其正常工作。

此处有更多信息: https://developer.apple.com/documentation/networkextension/nehotspotconfiguration

答案 3 :(得分:0)

可以在任何版本的iOS中加载配置文件:应用程序需要生成具有所需网络凭据的配置文件,并托管一个Web服务器,为移动Safari提供配置文件。