[Internet断开并迅速以4速度自动处理Internet连接

问题描述 投票:0回答:1

我正在使用可达性Swift快速处理Internet条件。我可以成功检测Internet是否正在工作,如果Internet可用,我的代码可以成功导航到所需页面,但是如果Internet不可用,则会显示警告消息没有可用的互联网连接。

override func viewDidLoad() {
        super.viewDidLoad()
        do{
            reachability = try Reachability()

            try reachability?.startNotifier()
        }catch{
            print("could not start reachability notifier")
        }
    }


 override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        self.checkNetworkStatus()

    }


func checkNetworkStatus() {
        let alert = UIAlertController(title: "", message: "无网络连接", preferredStyle: .alert)
        if reachability?.isReachable == true {
            alert.dismiss(animated: true, completion:nil)
            queryObj()
        } else {

            alert.addAction(UIAlertAction(title: "好", style: .default, handler: { action in
                switch action.style{
                case .default:
                    print("default")
                case .cancel:
                    print("cancel")
                case .destructive:
                    print("destructive")
                default :
                    print("default")
                }}))
            self.present(alert, animated: true, completion: nil)
            let when = DispatchTime.now() + 1
            DispatchQueue.main.asyncAfter(deadline: when){
                self.checkNetworkStatus()
            }
        }
    }

func queryObj(){

            Alamofire.request(self.base_url ).responseJSON { response in
                if
                    let result = response.result.value
                {
                    let JSON = result as! NSDictionary
                    let server_status = JSON.object(forKey: "code") as? String
                    if server_status == "200"{
                        let preResult = JSON.object(forKey: "result") as! NSDictionary
                        let result1 = preResult.object(forKey: "iconimage") as! String
                        let supportViewController = self.storyboard!.instantiateViewController(withIdentifier: "support") as! SupportViewController
                        supportViewController.supportURL = result1
                        self.present(supportViewController, animated: false, completion: nil)

                        return
                    }else{
                        let mainViewController = self.storyboard!.instantiateViewController(withIdentifier: "nav")
                        self.present(mainViewController, animated: false, completion: nil)
                    }
                }else{
                    self.queryObj()
                }

            }
       }
  • 疑问

[如果最初,用户已关闭移动数据...此代码将显示“没有互联网连接”,但是即使用户戴上互联网,它也不会推送到其他页面并点击我的网址,应该应该做的。

我该如何处理这种情况?

我希望代码在用户放置移动数据时立即工作。请在这个小问题中帮助我。任何帮助或指导都将是可贵的。谢谢!!

我正在使用可达性Swift快速处理Internet条件。我可以成功检测Internet是否正在工作,如果Internet可用,我的代码将导航到所需的页面...

swift connection reachability reachability-swift
1个回答
0
投票

只需快速浏览一下文档:https://github.com/ashleymills/Reachability.swift

© www.soinside.com 2019 - 2024. All rights reserved.