메뉴

Swift IOS App Dev – Alamofire response 서버 접속이 정상인지 여부 확인

2018년 8월 30일 - devstory

기본적으로 WebView를 띄우기 전 서버 접속이 원활한지 확인이 필요하다.

Alamofire 를 이용해서 response 되는 값을 검토해서 정상여부를 확인 후,

비정상인 경우 앱을 종료한다는 메시지(UIAlertController)와 함께 Timer 를 이용해서 5초 후 자동종료 되게 한다.

 

override func viewDidLoad() {

        super.viewDidLoad()

        Alamofire.request(baseUrl, method: .get)

            .responseJSON { response in

               

                if response.response != nil {

//                    self.alertMessageOK(title: “알림”, message: “정상 접속되었습니다.”)

                }else{

                    if #available(iOS 10.0, *) {

                        self.alertMessageFail(title: “알림”, message: “서버 접속이 원활하지 않습니다. \n앱 종료 후 다시 접속 해주십시오. \n5초 후 자동종료됩니다.”)

                    } else {

                        // Fallback on earlier versions

                    }

                }

        }

    

        if let url = URL(string: baseUrl + introUrl) {

            let urlRequest = URLRequest(url: url)

            webView?.load(urlRequest)

        }

        

    }

 

}

 

extension UIViewController {

    func alertMessageOK(title: String, message: String) {

        let alert = UIAlertController(title: title, message: message, preferredStyle: UIAlertController.Style.alert)

        let action = UIAlertAction(title: “Ok”, style: .default, handler: nil)

        alert.addAction(action)

        present(alert, animated: true, completion: nil)

        

    }

    

    @available(iOS 10.0, *)

    func alertMessageFail(title: String, message: String) {

        let alert = UIAlertController(title: title, message: message, preferredStyle: UIAlertController.Style.alert)

        let action = UIAlertAction(title: “Ok”, style: .default, handler: nil)

        alert.addAction(action)

        present(alert, animated: true, completion: nil)

        Timer.scheduledTimer(timeInterval: 5,

                             target: self,

                             selector: #selector(fnExit),

                             userInfo: nil,

                             repeats: false)

    }

    

    @objc func fnExit(){

        exit(0)

    }

}

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.