前置條件
1.付費(fèi)蘋(píng)果開(kāi)發(fā)者賬號(hào)
2.開(kāi)發(fā)者中心申請(qǐng)使用Hotspot 和 WiFi information 的權(quán)限配置
在開(kāi)發(fā)者中心 配置Hotspot 和 WiFi information 的權(quán)限



在Xcode 項(xiàng)目 配置Hotspot 和 WiFi information 的權(quán)限



在Xcode 項(xiàng)目 導(dǎo)入相關(guān)靜態(tài)庫(kù)

代碼實(shí)現(xiàn)
導(dǎo)入頭文件
#import <NetworkExtension/NetworkExtension.h>
#import<SystemConfiguration/CaptiveNetwork.h>
連接WiFi
//1、app切換連接到對(duì)應(yīng)WiFi:
NEHotspotConfiguration * conWiFi = [[NEHotspotConfiguration alloc] initWithSSID:@"WiFi名稱" passphrase:@"WiFi密碼" isWEP:NO];
[[NEHotspotConfigurationManager sharedManager] applyConfiguration:conWiFi completionHandler:^(NSError * _Nullable error) {
if (error) {
if (error.code == NEHotspotConfigurationErrorAlreadyAssociated) {
//已連接
NSLog(@"WiFi 連接成功");
}
else if (error.code == NEHotspotConfigurationErrorUserDenied) {
//用戶點(diǎn)擊取消
NSLog(@"WiFi 用戶點(diǎn)擊取消");
}
else{
NSLog(@"WiFi 錯(cuò)誤");
}
}
}];
獲取配置過(guò)的WiFi列表
//2、獲取配置過(guò)的WIFI列表:
if (@available(iOS 11.0, *)) {
[[NEHotspotConfigurationManager sharedManager] getConfiguredSSIDsWithCompletionHandler:^(NSArray * array) {
NSLog(@"WiFi 列表 %@",array);
}];
}
獲取已連接WiFi名
//3、獲取手機(jī)連接的WiFi列表:
NSLog(@"已連接WiFi-%@",[self obtainWiFiName]);
- (NSString *)obtainWiFiName
{
NSString *ssid = @"Not Found";
CFArrayRef myArray = CNCopySupportedInterfaces();
if (myArray != nil) {
CFDictionaryRef myDict = CNCopyCurrentNetworkInfo(CFArrayGetValueAtIndex(myArray, 0));
if (myDict != nil) {
NSDictionary *dict = (NSDictionary*)CFBridgingRelease(myDict);
ssid = [dict valueForKey:@"SSID"];
}
}
return ssid;
}