Swift - 添加網絡檢查Reachability

兩篇關于Reachability的使用方法
Reachability使用
how to use Reachability

github 下載地址

上代碼:


// 檢查檢查網絡狀態是否當前網絡可用
    func checkNetworkStates() {
        // 初始化
        self.reach = Reachability.reachabilityForInternetConnection()
        self.reach?.reachableOnWWAN = false
        // 添加通知
        NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(AppDelegate.reachabilityChanged(_:)), name: kReachabilityChangedNotification, object: nil)
        self.reach!.startNotifier()
    }
    
// 每次有網絡切換的時候調用
    func reachabilityChanged(noti:NSNotification) {
        if self.reach!.isReachableViaWiFi() || self.reach!.isReachableViaWWAN() {
            print("當前網絡可用")
        }else {
            print("當前網絡不可用")
  // 網絡不可用是添加 提示框
           altertStatus()
            
        }
    }

// 無網絡狀態添加提示框
    func altertStatus() {
        let alerContl = UIAlertController.init(title: "斗筆提示您:", message: "無網絡鏈接", preferredStyle: UIAlertControllerStyle.Alert)
        let action1 = UIAlertAction.init(title: "取消", style: UIAlertActionStyle.Cancel, handler: nil)
        let action2 = UIAlertAction.init(title: "設置", style: UIAlertActionStyle.Default) { (action) in
// 打開系統wifi 設置界面
            let url = NSURL(string: "prefs:root=WIFI")
            UIApplication.sharedApplication().openURL(url!)
        }
        alerContl.addAction(action1)
        alerContl.addAction(action2)
        self.window?.rootViewController?.presentViewController(alerContl, animated: true, completion: nil)
    }```

如何打開系統的各種設置界面:
#####首先,進行設置info 的URL Types
![截圖](http://upload-images.jianshu.io/upload_images/1285286-c5b5387d348c1ddc.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
```swift
 let url = NSURL(string: "prefs:root=WIFI")
 UIApplication.sharedApplication().openURL(url!)

所有設置對應的url:

Usage — prefs:root=General&path=USAGE  

VPN — prefs:root=General&path=Network/VPN  

Wallpaper — prefs:root=Wallpaper  

Wi-Fi — prefs:root=WIFI

Setting—prefs:root=INTERNET_TETHERING

Storage & Backup — prefs:root=CASTLE&path=STORAGE_AND_BACKUP  

International — prefs:root=General&path=INTERNATIONAL  

Location Services — prefs:root=LOCATION_SERVICES  

Music — prefs:root=MUSIC  

Music Equalizer — prefs:root=MUSIC&path=EQ  

Music VolumeLimit— prefs:root=MUSIC&path=VolumeLimit  

Network — prefs:root=General&path=Network  

Nike + iPod — prefs:root=NIKE_PLUS_IPOD  

Notes — prefs:root=NOTES  

About — prefs:root=General&path=About  

Accessibility — prefs:root=General&path=ACCESSIBILITY  

AirplaneModeOn— prefs:root=AIRPLANE_MODE  

Auto-Lock — prefs:root=General&path=AUTOLOCK  

Brightness — prefs:root=Brightness  

Bluetooth — prefs:root=General&path=Bluetooth

Date& Time — prefs:root=General&path=DATE_AND_TIME  

FaceTime — prefs:root=FACETIME

General— prefs:root=General

Keyboard — prefs:root=General&path=Keyboard  

iCloud — prefs:root=CASTLE  iCloud 

Notification — prefs:root=NOTIFICATIONS_ID  

Phone — prefs:root=Phone  

Photos — prefs:root=Photos  

Profile — prefs:root=General&path=ManagedConfigurationList  

Reset — prefs:root=General&path=Reset  

Safari — prefs:root=Safari  Siri — prefs:root=General&path=Assistant  

Sounds — prefs:root=Sounds  

SoftwareUpdate— prefs:root=General&path=SOFTWARE_UPDATE_LINK  

Store — prefs:root=STORE  

Twitter — prefs:root=TWITTER  

這里參考文章:iOS 跳轉到系統的設置界面

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,923評論 18 139
  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,232評論 4 61
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,284評論 25 708
  • 草和花之戀 草原上,會有很多的草,很多的花,不是每一棵草都能和心中的花相遇。 某一天,花的種子飄到了草的旁邊,在它...
    涂山狐貍閱讀 326評論 0 1
  • 7.0
    L317000出閱讀 277評論 0 0