日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

自动检测iOS网络并可跳转至设置界面设置网络

發布時間:2024/9/30 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 自动检测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];??//開始監聽,會啟動一個run?loop??
  • ??
  • ????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网络并可跳转至设置界面设置网络的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。