wifi認證存在的問題:在設備連接上wifi,沒有通過路由器認證前,如果關閉自動彈出的Portal頁面,wifi會自動斷開。 解決方案:可通過以下兩個方法來禁止系統自動彈Portal頁面來解決wifi自動關閉的問題。
1、正常情況,用戶使用iphone手機連接帶有Portal認證的路由器,在連接成功后,iOS系統會在已有列表中隨機選擇連接指定的網址(例如:www.itools.info)以測試當前路由器是否需要Portal認證。在需要Portal認證的網絡,系統會彈出Portal頁面,這個時候,如果用關掉portal頁面,或者直接切換到其它應用,wifi網絡會直接自動斷開,我們的解決辦法是路由器白名單,讓路由器放行所有Portal測試的IP,以下為測試的域名:
www.appleiphonecell.com captive.apple.com www.itools.info www.ibook.info www.airport.us www.thinkdifferent.us對應的IP地址:
23.207.103.91 23.33.54.18 23.44.167.91 23.67.183.91 96.7.103.91 23.42.71.91 23.34.105.211 23.59.167.91 23.42.184.50 23.47.232.190 23.77.23.91 23.194.87.91 23.61.91.190 23.218.12.50 23.2.38.95 23.46.135.91 172.225.213.179 218.205.66.94 23.64.251.249 23.58.250.189將以上所有IP加到路由器的白名單中,即可解決iPhone斷開wifi的問題,但是同時也不自動彈出Portal頁面了,用戶打開瀏覽器才會重定向到Portal頁面。
2、 wifi名確定解決方法 如果公司部署的公共wifi名確定的情況,就比較簡單了,不需要配置上述白名單也可以保證wifi不斷開,具體辦法是,在程序啟動時,向iOS系統注冊SSID,方法如下:
- (void)registerNetwork:(NSString *)ssid{ NSString *values[] = {ssid}; CFArrayRef arrayRef = CFArrayCreate(kCFAllocatorDefault,(voidvoid *)values, (CFIndex)1, &kCFTypeArrayCallBacks); if( CNSetSupportedSSIDs(arrayRef)) { NSArray *ifs = (__bridge_transfer id)CNCopySupportedInterfaces(); CNMarkPortalOnline((__bridge CFStringRef)(ifs[0])); NSLog(@"%@", ifs); }}參考資料:iOS WIFI 信息 獲取
新聞熱點
疑難解答