2016-06-23 1 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

ビューを再読み込みせずに無線LANをオンまたはオフにすると、この更新方法が表示されません。何か不足していますか? – jonthornham

+0

いつでもネット接続が必要なイベントを実行するために行くので、これを使用してユーザーにポップアップを表示することができます。 –

+1

これはオプションであることは分かっていますが、これは私が尋ねた質問を解決するものではありません。関係なく、助けてくれてありがとう。 – jonthornham

0

使用This

そしてu likeにしたいisConnectedToNetwork()呼び出す:

guard isConnectedToNetwork() != false else{ 
//Do your thing 
return 
} 
// Do your thing if is connected is true 
関連する問題