2016. 9. 19. 15:52ㆍmobile/ios
ios도 모르고 하이브리드 앱 개발하기 [ 12 webview에서 네트워크 체크하기 ]
webview 를 사용하면 네트워크 체크를 해주어야 한다.
특히 webview로 웹을 이동하는 중간에 네트워크가 차단될 경우를 대비해야 한다.
간단하게 웹을 이동 중에 네트워크가 차단되면 알림창을 통해 알려주는 것을 구현해 보도록 한다.
android와 비교하면 WebViewClient 를 상속받은 클래스를 하나 생성하고 onReceivedError 메소드를 Override 하는 개념이 아닐까 생각해 본다.
일단 UIWebViewDelegate 를 선언해야 한다.
선언 방법은 ios도 모르고 하이브리드 앱 개발하기 [ 11 webview와 javascript간의 상호 호출하기 ] 를 참고하면 될 것 같다.
ViewController.m 파일
didFailLoadWithError 메소드를 구현한다.
이는 webview에 오류가 발생시 호출되는 메소드이다.
1
2
3
4
5
6
7
8
9
10
11 |
// webView load error
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
NSInteger errorCode = error.code;
// 네트워크 오류
if(errorCode == -1009){
[self printAlert:@"Network Message" msg:@"네트워크 연결을 확인하여 주세요"];
}
} |
cs |
4# : 에러 정보를 담고있는 객체에서 에러코드를 추출함 (error.description : 에러설명, error.code : 에러코드 등)
7# : 에러 코드 체크 ( -1009는 네트워크 오류 )
8# : alert 메시지 출력
이제 webview 가 http://www.naver.com 주소로 호출하도록 하고
NSString *url = @"http://localhost:8080/IOSweb/index.jsp";
위 소스를 아래처럼 변경
NSString *url = @http://www.naver.com;
naver 호출이 끝난 후 맥북의 네트워크를 차단하고 아무 기사나 클릭해서 페이지 이동을 시도해보자.
끝
* 경고 IOS에 무지한 상태에서 구글링만으로 앱 개발 및 포스팅이 진행됨 누구나 따라할 수 있겠지만 결코 완벽한 정답이 아닐 수 있음 아주 주관적인 입장에서의 포스팅임 |