2016-06-23 2 views
1

인터넷 연결이 필요한 iOS 앱을 만들고 있습니다. 나는 FaceBook 앱이 당신이 연결을 잃었을 때 알려주는 화면을 업데이트한다는 것을 알아 차렸다. 또한 연결을 복구 할 때 경고를 제거합니다.인터넷 연결이 끊어 질 때 특정 iOS 앱이 어떻게 알 수 있습니까?

제 질문은 어떻게됩니까? 뷰가 이미로드되었으므로 연결이 손실되거나 복구 된 경우 호출되는 알림 유형이 있어야합니다. 오늘 밤 GitHub에서 Reachability 코드를 설치했고, 일단 뷰가로드되면 연결이 끊어지면 연결이 끊어 졌다는 통보를받지 못했습니다. 나는 통보를 신청했다. 코드는 다음과 같습니다.

override func viewWillAppear(animated: Bool) 
    { 
     super.viewWillAppear(animated) 

     var reachability: Reachability? 

     //declare this inside of viewWillAppear 
     do { 
      reachability = try Reachability.reachabilityForInternetConnection() 
     } catch { 
      print("Unable to create Reachability") 
      return 
     } 

     NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(TipViewController.reachabilityChanged(_:)),name: ReachabilityChangedNotification,object: reachability) 
     do{ 
      try reachability?.startNotifier() 
     }catch{ 
      print("could not start reachability notifier") 
     } 
    } 

    func reachabilityChanged(note: NSNotification) { 

     let reachability = note.object as! Reachability 

     if reachability.isReachable() { 
      if reachability.isReachableViaWiFi() { 
       print("Reachable via WiFi") 
      } else { 
       print("Reachable via Cellular") 
      } 
     } else { 
      print("Network not reachable") 
     } 
    } 

어떤 도움을 주시면 감사하겠습니다.

+0

모든 솔루션을? 인터넷 연결이 변경되면 메소드가 트리거됩니까? –

+0

나는 그것을 실험하고 해결했다. 도달 가능성 인스턴스를 전역 적으로 선언하면 작동합니다. 감사. –

답변

0

먼저 Reachability.swift이

https://github.com/pavangandhi/TestProject/tree/master/TestProject/AppConstants

를 사용하여 응용 프로그램을 테스트하기 위해 아래 코드와 연결되어 당신은 아래 링크를 여기에서 얻을 수있는 프로젝트에 파일을 추가 인터넷 여부 :

// check internet connectivity if its returns YES means its connect with internet, Wifi and cellular data 

class func isConnectedToNetwork() -> Bool 
{ 
    let reachability = Reachability.reachabilityForInternetConnection() 

    if reachability.isReachable() || reachability.isReachableViaWiFi() || reachability.isReachableViaWWAN() 
    { 
     return true 
    } 
    else 
    { 
     return false 
    } 
} 

참고 :이 코드를 추가하기 전에 프로젝트에 Reachability.swift 파일을 추가해야합니다.

+1

보기를 다시로드하지 않고 Wi-Fi를 껐다가 다시 켜면 업데이트 방법이 표시되지 않습니다. 내가 놓친 게 있니? – jonthornham

+0

언제든지 인터넷 연결이 필요한 모든 이벤트를 수행 할 때마다이 작업을 수행하고 사용자에게 팝업을 표시 할 수 있습니다. –

+1

이것이 옵션이라는 것을 알고 있지만 이것은 내가 물어 본 질문을 해결하지 못합니다. 상관없이 도와 줘서 고마워. – jonthornham

0

사용 This

그리고 다음 U이 좋아 원하는 isConnectedToNetwork() 전화 :

guard isConnectedToNetwork() != false else{ 
//Do your thing 
return 
} 
// Do your thing if is connected is true 
관련 문제