生活随笔
收集整理的這篇文章主要介紹了
自动检测iOS网络并可跳转至设置界面设置网络
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
首先在gitHub下載一個三方文件https://github.com/tonymillion/Reachability。導入
#import "Reachability.h"
若不想寫繁瑣的網絡狀況判斷代碼,并且應用程序能自動在無網絡時彈出可跳轉到系統設置頁面的對話框,那么可以考慮這么做。
在項目中相應的**info.plist文件中增加一個關鍵字:
<key>SBUsesNetwork</key>
<true/>
應用程序就會自動檢測網絡狀況,在網絡異常的情況下,會彈出網絡設置對話框提醒用戶是否進行網絡設置,并且可以跳轉至系統設置中進行昂立設置。
其實在IOS5.1+之后,蘋果就刪除了程序跳轉至設置界面的功能了,不知道為什么。。。
所以自己寫代碼也是不可能實現的,只能夠對網絡進行監聽,然后提醒用戶網絡鏈接異常而已。
下面是監聽網絡改變的代碼,可以參考一下:
在AppDelegate.m中寫如下代碼:
[cpp]?view plaincopy
-?(BOOL)application:(UIApplication?*)application?didFinishLaunchingWithOptions:(NSDictionary?*)launchOptions?? {?? ????self.window?=?[[[UIWindow?alloc]?initWithFrame:[[UIScreen?mainScreen]?bounds]]?autorelease];?? ?????? ?????? ????[[NSNotificationCenter?defaultCenter]?addObserver:self?selector:@selector(reachabilityChanged:)?name:kReachabilityChangedNotification?object:nil];?? ?????? ????self.hostReach?=?[Reachability?reachabilityWithHostName:@"www.baidu.com"]?;?? ????[self.hostReach?startNotifier];???? ?? ????self.window.rootViewController?=?self.tabBarController;?? ????[self.window?makeKeyAndVisible];?? ????return?YES;?? }?? ?? ?? -(void)reachabilityChanged:(NSNotification?*)note?? {?? ????Reachability?*currReach?=?[note?object];?? ????NSParameterAssert([currReach?isKindOfClass:[Reachability?class]]);?? ?????? ?????? ????NetworkStatus?status?=?[currReach?currentReachabilityStatus];?? ?????? ????self.isReachable?=?YES;?? ????if(status?==?NotReachable)?? ????{?? ????????UIAlertView?*alert?=?[[UIAlertView?alloc]?initWithTitle:@"網絡連接異常"?message:@"暫無法訪問書城信息"?delegate:nil?cancelButtonTitle:@"確定"?otherButtonTitles:nil];?? ????????[alert?show];?? ????????[alert?release];?? ????????self.isReachable?=?NO;?? ????}?? ????else?? ????{?? ????????UIAlertView?*alert?=?[[UIAlertView?alloc]?initWithTitle:@"網絡連接信息"?message:@"網絡連接正常"?delegate:nil?cancelButtonTitle:@"確定"?otherButtonTitles:nil];?? ????????[alert?show];?? ????????[alert?release];?? ????????self.isReachable?=?YES;?? ????}?? }??
通過如上代碼,在應用程序的任何一個界面都可以使用下面的單例來判斷網絡是否連接
[cpp]?view plaincopy
AppDelegate?*appDlg?=?(AppDelegate?*)[[UIApplication?sharedApplication]?delegate];?? if(appDlg.isReachable)?? {?? ????NSLog(@"網絡已連接");?? }?? else?? {?? ????NSLog(@"網絡連接異常");?? }??
然后就可以執行響應的操作了,這樣使用監聽的好處就是,不必在每一個需要檢測網絡鏈接情況的地方都寫一大堆代碼,只需要上面的監聽,網絡改變的時候,在任何一個地方都可以自定提醒用戶。
監聽就是這樣滴好用,(*^__^*) 嘻嘻……任何對象都可以接收。
總結
以上是生活随笔為你收集整理的自动检测iOS网络并可跳转至设置界面设置网络的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。