ライブラリ自体は、以前から導入していましたが、書き方が当時と変わっていたので備忘録としてまとめ。
タイトル通り、iOS 端末がインターネットに接続されているかどうかを確認する方法についてです。
ライブラリは「ReachabilitySwift」を利用しています。
GitHub のページはこちらから。
GitHub – ashleymills/Reachability.swift: Replacement for Apple’s Reachability re-written in Swift with closures
https://github.com/ashleymills/Reachability.swift
インストールには CocoaPods
を利用しました。
まず、Podfile
に下記を追加します。
pod 'ReachabilitySwift'
上記を追加したら、コマンドラインツールで pod install
を実行します。
上記が完了したら、プロジェクトにコードを追加していきます。
と言っても、実際に書いたコードはこれだけです。
まず、下記の 1行を追加し、ライブラリをインポートします。
import Reachability
上記を追加したら一旦、Build
をおすすめします。
で、あとは任意のタイミングで下記のコードを実行するだけです。
let reachability = try! Reachability() if reachability.connection == .unavailable { // インターネット接続なし } else { // インターネット接続あり }
上記コードの 2行目に書いてある通り、もし reachability.connection
の返り値が .unavailable
だったら、その端末はインターネット接続されていませんので、警告文を表示するなどの任意の処理を行ってください。
それ以外であれば、インターネット接続がされています。
もし、もっと細かく、Wi-Fi なのか、au・SoftBank・docomo などのキャリア通信なのかを判断したいのであれば、下記のように記述してください。
let reachability = try! Reachability() switch reachability.connection { case .wifi: print("Wi-Fi に接続しています") case .cellular: print("キャリアの回線に接続しています") case .unavailable: print("インターネットに接続されていません") }
今回は、ここまで細かく確認する必要がなかったので、1つ目のサンプルコードを使いましたが、例えば大きいファイルをダウンロードするなどの通信量の多い処理を行う場合に、もしキャリア通信を行っていたら処理を行う前に警告を表示する、などの対応を行えそうですね。
この辺りは実装したい機能に合わせて適宜変更してください。
以上、Swift で端末がインターネットに接続されているかどうかを確認できるライブラリ「ReachabilitySwift」でした。
ご参考になれば幸いです。