很久没有写博客了,最近在作iOSWIFi开发的部分,这里咱们主要用到的API以及FrameWork有如下:ios
准备条件:git
申请步骤: 申请网址 developer.apple.com//contact/ne… 填写申请的相关资料 github
大体意思就是从16年11月10日开始 能够在开发者帐户的account页面建立APPID的时候添加网络扩展数组
在这里我就很少加赘述,WIFi开发的相关资料虽然不多,可是申请成功后,如何在项目中配置,这部分的文章网上有不少,具体配置给大家推荐两篇文章好吧安全
部分使用代码bash
Register a Hotspot Helper
+ (BOOL)registerWithOptions:(NSDictionary*)options queue:(dispatch_queue_t)queue handler:(NEHotspotHelperHandler)handler
@param options
kNEHotspotHelperOptionDisplayName :WIFI的注释tag字符串// 此处设置的内容会在WiFi列表中每一个WiFi下边展现出来
@param queue dispatch_queue_t 用来调用handle的block
@param handler NEHotspotHelperHandler block 用于执行处理 helper commands.
@return 注册成功YES, 不然NO.
@discussion 一旦这个API调用成功,应用程序有资格在后台启动,并参与各类热点相关的功能。 当应用程序启动此方法应该调用一次。再次调用它不会产生影响,并返回NO。
这个方法是主要的.
复制代码
+ (BOOL)logoff:(NEHotspotNetwork *)network
@param network 对应当前关联的WiFi网络NEHotspotNetwork
@return 注销命令已成功进入队列YES, 不然NO.
@discussion 调用此方法使kNEHotspotHelperCommandTypeLogoff型的NEHotspotHelperCommand向应用程序发出的“handler”模块 网络参数必须符合当前关联的WiFi网络,即它必须来自对NEHotspotHelperCommand网络属性或方法supportedInterfaces
+ (NSArray *)supportedNetworkInterfaces
@return 若是没有网络接口被管理,返回nil。不然,返回NEHotspotNetwork对象数组。
@discussion 每一个网络接口由NEHotspotNetwork对象表示。当前返回的数组包含一个NEHotspotNetwork对象表明Wi-Fi接口。
这种方法的主要目的是当没有获得一个命令来处理它时,让一个热点助手偶尔提供在UI里其准确的状态。 此方法加上NEHotspotNetwork的isChosenHelper方法容许应用程序知道它是不是当前处理的网络。
复制代码
+(void)getWifiList{
NSMutableDictionary* options = [[NSMutableDictionary alloc] init];
[options setObject:@"🔑Wifi子标题🔑" forKey:kNEHotspotHelperOptionDisplayName];
dispatch_queue_t queue = dispatch_queue_create("com.pronetwayXY", NULL);
BOOL returnType = [NEHotspotHelper registerWithOptions:options queue:queue handler: ^(NEHotspotHelperCommand * cmd) {
NEHotspotNetwork* network;
NSLog(@"COMMAND TYPE: %ld", (long)cmd.commandType);
[cmd createResponse:kNEHotspotHelperResultAuthenticationRequired];
if (cmd.commandType == kNEHotspotHelperCommandTypeEvaluate || cmd.commandType ==kNEHotspotHelperCommandTypeFilterScanList) {
NSLog(@"WIFILIST: %@", cmd.networkList);
for (network in cmd.networkList) {
// NSLog(@"COMMAND TYPE After: %ld", (long)cmd.commandType);
if ([network.SSID isEqualToString:@"ssid"]|| [network.SSID isEqualToString:@"proict_test"]) {
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);
}
复制代码
经过这样的方式进行链接网络
iOS wifi开发相关资料较少,Apple对这方面的审核也较为严格 但愿这篇文章能够帮助到正在作wifi开发相关的小伙伴们,加油!app