AlamofireReachabilityManager.swift 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. //
  2. // ReachabilitySwiftManager.swift
  3. // RainbowPlanet
  4. //
  5. // Created by 南鑫林 on 2019/5/28.
  6. // Copyright © 2019 RainbowPlanet. All rights reserved.
  7. //
  8. import UIKit
  9. import Alamofire
  10. class AlamofireReachabilityManager: NSObject {
  11. /// 单列
  12. static let shared : AlamofireReachabilityManager = AlamofireReachabilityManager()
  13. /// 初始化对象
  14. private var manager = NetworkReachabilityManager()!
  15. /// 初始化对象
  16. lazy var reachabilityManager: NetworkReachabilityManager = {
  17. let reachabilityManager = NetworkReachabilityManager(host: kApiDataPrefix())!
  18. return reachabilityManager
  19. }()
  20. /// 网络监听
  21. public func reachability() {
  22. reachabilityManager.listener = { status in
  23. if status == NetworkReachabilityManager.NetworkReachabilityStatus.notReachable {
  24. NXLLog("当前无网络")
  25. }
  26. if status == NetworkReachabilityManager.NetworkReachabilityStatus.unknown {
  27. NXLLog("当前网络环境为:未知网络")
  28. }
  29. if status == NetworkReachabilityManager.NetworkReachabilityStatus.reachable(.ethernetOrWiFi) {
  30. NXLLog("当前网络环境为:无线网络")
  31. }
  32. if status == NetworkReachabilityManager.NetworkReachabilityStatus.reachable(.wwan) {
  33. NXLLog("当前网络环境为:无线广域网")
  34. }
  35. }
  36. startListening()
  37. }
  38. /// 开始监听
  39. private func startListening() {
  40. reachabilityManager.startListening()
  41. }
  42. /// 结束监听
  43. private func stopListening() {
  44. reachabilityManager.stopListening()
  45. }
  46. /// 判断是否连接网络
  47. public func isNetworkConnect() -> Bool {
  48. if manager.isReachable {
  49. return true
  50. }else {
  51. return false
  52. }
  53. }
  54. // /// 弹框跳转设置页面
  55. // public func alert(){
  56. //
  57. // DispatchQueue.main.async(execute: {() -> Void in
  58. // AlertSheetView.alert(title: "网络连接失败", detailTitle: "检测到网络权限可能未开启\n您可以在\"设置>无线数据>WLAN或WLAN与蜂窝移动网\"开启一下吧", cancelTitle: "取消", sureTitle: "设置", cancelBlock:nil, confirmBlock: { (popupView, index, str) in
  59. // let url = URL(string: UIApplication.openSettingsURLString)
  60. // if let url = url, UIApplication.shared.canOpenURL(url) {
  61. // if #available(iOS 10.0, *) {
  62. // UIApplication.shared.open(url, options: [:],completionHandler: {(success) in})
  63. // }else {
  64. // UIApplication.shared.openURL(url)
  65. // }
  66. // }
  67. // })
  68. // })
  69. // }
  70. }