【Swift】「ReachabilitySwift」ライブラリを使って端末がインターネットに接続されているかを確認する

ライブラリ自体は、以前から導入していましたが、書き方が当時と変わっていたので備忘録としてまとめ。
タイトル通り、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」でした。
ご参考になれば幸いです。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG