项目经验iOS积累iOS

NEHotspotHelper的使用和申请

2017-03-24  本文已影响269人  没技术的BUG开发攻城狮

最近在做一个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

后续会介绍的更加详细,敬请期待

如有雷同,请告知。

上一篇下一篇

猜你喜欢

热点阅读