iOS 앱에서 네트워크 상태 얻기
4052 단어 XcodeiOSSwiftObjective-C
소개
네트워크의 접속 상황을 확인하는 라이브러리 「Reachability」를 사용해 보았으므로 비망록으로서 기입합니다.
현재의 네트워크의 접속 상황이 3G, WiFi, 혹은 권외인지를 확인할 때에 편리한 것이 「Reachability」라고 하는 라이브러리입니다.
Reachability 도입
CocoaPods를 도입하고 있는 경우는 이하의 순서를 실시한다.
※CocoaPods의 도입 순서에 대해서는 이쪽의 기사에 매우 정중하게 쓰여져 있습니다.
ぃ tp // 코 m / 시노 키요 세이 / ms / 3090290cb72434852460
cd プロジェクトディレクトリ //プロジェクトディレクトリに移動
pod init //Podfileを作成
vim podfile //Podfileを開く
Podfile의 내용을 아래와 같이 편집.
target 'ReachabilityDemo(앱 이름)' do의 한 줄 아래에
pod 'Reachability'라고 추가하고 저장합니다.
# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
target 'ReachabilityDemo' do
pod 'Reachability'
# Uncomment this line if you're using Swift or would like to use dynamic frameworks
# use_frameworks!
# Pods for ReachabilityDemo
end
pod install //Reachabilityのインストール
※Xcode를 만약 열려 있는 상태라면 한번 재기동 후 프로젝트를 다시 열어 주세요.
CocoaPods를 사용하지 않는 방법
아래 페이지에서 샘플 코드를 다운로드하고 프로젝트에 Reachability.h/m을 추가하십시오.
SystemConfiguration.framework 추가
1, 프로젝트 이름 누르기
2,Linked Frameworks and Libraries의 +를 눌러
3, systemc 및 검색 바에 입력
4, SystemConfiguration.framework를 선택하고 추가 버튼을 누르십시오.
구현
ViewController.m
#import "ViewController.h"
#import "Reachability.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidAppear:(BOOL)animated {
Reachability *reachability = [Reachability reachabilityForInternetConnection];
NetworkStatus netStatus = [reachability currentReachabilityStatus];
switch (netStatus) {
case NotReachable: //圏外
NSLog(@"圏外");
break;
case ReachableViaWWAN: //3G
NSLog(@"3G");
break;
case ReachableViaWiFi: //WiFi
NSLog(@"WiFi");
break;
default: //上記以外
NSLog(@"上記以外");
break;
}
// 用途としては下記のようにif文でネットワークステータスを判定して使うことが多そう
if (netStatus == NotReachable) {
// ここでUIAlertControllerで「ネットワークに接続していません」等のアラートを出すなど
} else {
NSLog(@"正常");
// ここに正常系の処理を書く
}
}
@end
※코멘트로 교시해 주신 네트워크 스테이터스 변경을 통지하는 방법도 추기하겠습니다.
ViewController.m
#import "ViewController.h"
#import "Reachability.h"
@interface ViewController ()
@property (weak, nonatomic) Reachability *reachability;
@end
@implementation ViewController
- (void)viewDidAppear:(BOOL)animated {
self.reachability = [Reachability reachabilityForInternetConnection];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(notifiedNetworkStatus:)
name:kReachabilityChangedNotification
object:nil];
[self.reachability startNotifier];
}
- (void)notifiedNetworkStatus:(NSNotification *)notification {
NetworkStatus networkStatus = [self.reachability currentReachabilityStatus];
switch (networkStatus) {
case NotReachable: //圏外
NSLog(@"圏外");
break;
case ReachableViaWWAN: //3G
NSLog(@"3G");
break;
case ReachableViaWiFi: //WiFi
NSLog(@"WiFi");
break;
default: //上記以外
NSLog(@"上記以外");
break;
}
}
@end
사이고에게
편리!
Reference
이 문제에 관하여(iOS 앱에서 네트워크 상태 얻기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/takanori_yamashita/items/09a0d0034ff96f7dff11텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)