最近在做一个WiFi相关的功能的项目,这个框架是iOS9 以后才出来的,在网上查看了资料和根据自己的摸索,然后写了一个demo,下面把自己的写的过程分享给大家,希望可以对你有所帮助,也请大神支出不足之处:
这个框架的使用大致分为这几个步骤
- 向苹果申请使用权限
- 配置证书文件
- 配置工程
- 代码实现
申请权限地址:点击进入申请
申请周期大约两到三周苹果会回复给你一封邮件,让你说明如何使用这个权限。根据自己的项目需求如实描述即可
证书如何配置就不此再详细说明了。
代码实现:
- (void)viewDidLoad {
[super viewDidLoad];
NSMutableDictionary* options = [[NSMutableDictionary alloc] init];
[options setObject:@"微信连Wi-Fi" forKey:kNEHotspotHelperOptionDisplayName];
dispatch_queue_t queue = dispatch_queue_create("bundle identifier", NULL);
BOOL returnType = [NEHotspotHelper registerWithOptions:options queue:queue handler: ^(NEHotspotHelperCommand * cmd) {
NEHotspotNetwork* network;
NSLog(@"TYPE: %ld", (long)cmd.commandType);
[cmd createResponse:kNEHotspotHelperResultAuthenticationRequired];
if (cmd.commandType == kNEHotspotHelperCommandTypeEvaluate || cmd.commandType ==kNEHotspotHelperCommandTypeFilterScanList) {
NSLog(@"networkList: %@", cmd.networkList);
for (network in cmd.networkList) {
if ([network.SSID isEqualToString:@"ssid"]) {
double signalStrength = network.signalStrength;
NSLog(@"Signal Strength: %f", signalStrength);
[network setConfidence:kNEHotspotHelperConfidenceHigh];
[network setPassword:@"password"];
NEHotspotHelperResponse *response = [cmd createResponse:kNEHotspotHelperResultSuccess];
NSLog(@"Response CMD %@", response);
[response setNetworkList:@[network]];
[response setNetwork:network];
[response deliver];
}
}
}
}];
NSLog(@"result :%d", returnType);
NSArray *array = [NEHotspotHelper supportedNetworkInterfaces];
NSLog(@"wifiArray:%@", array);
NEHotspotNetwork *connectedNetwork = [array lastObject];
NSLog(@"supported Network Interface: %@", connectedNetwork);
}
在项目中还有如下需求:
在应用内跳转到系统Wi-Fi设置界面,计算热门网站的ping值,监控当前网络状态,发送通知,计算使用的流量,统计连接Wi-Fi时。
交流qq群:433700706
后续会介绍的更加详细,敬请期待
如有雷同,请告知。