很久沒有寫博客了,最近在作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