[ios] UIWebView 쿠키 유지
- (void)applicationDidEnterBackground:(UIApplication *)application
- (void)applicationWillTerminate:(UIApplication *)application
쿠키 정보를 저장할 때 UIWebView 인스턴스는 필요 없다.
[NSHTTPCookieStorage sharedHTTPCookieStorage] 메소드를 호출하면 애플리케이션에게 할당된 쿠키 저장소를 반환받는다.
즉 시스템 브라우저인 Safari나 다른 애플리케이션과 공유하지 않는 애플리케이션만의 쿠키 저장소이다.
(iOS는 쿠키를 공유하지 않지만 Mac OS는 쿠키를 공유한다)
{ NSLog(@"%@", @"PersisteWebCookie"); NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]; NSData *cookieData = [NSKeyedArchiver archivedDataWithRootObject:cookies]; [[NSUserDefaults standardUserDefaults] setObject:cookieData forKey:@"MySavedCookies"]; NSLog(@"%@", @"PersisteWebCookie Saved"); }
저장소에 현재 저장된 쿠키를 배열로(NSArray) 받아와서 NSUserDefaults에 저장할 수 있도록 NSKeyedArchiver를 통해 NSData 인스턴스로 변환한다.
키 값은 MySavedCookies를 사용하여 NSUserDefaults에 저장해둔다.
일반적으로 쿠키는 브라우저나 애플리케이션이 종료되면(iOS의 경우 홈버튼을 더블탭 하여 마이너스 아이콘으로 종료시키면) 쿠키 정보가 삭제된다.
하지만 위와 같이 저장한 쿠키 정보는 애플리케이션을 다시 실행시켰을 때 복구할 수 있다.
애플리케이션으로 돌아왔을 때
애플리케이션이 백그라운드에서 돌아오거나 다시 실행되는 이벤트는 보통 다음 Application Delegate의 메소드에서 처리한다.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
쿠키를 다시 되살리는 방법은 저장하는 순서의 반대로 한다.
키 값을 MySavedCookies로 하여 NSUserDefaults로부터 데이터를 꺼내오고 배열로 만든 후 하나씩 다시 쿠키 저장소에 저장한다.
{ NSLog(@"%@", @"PersisteWebCookie"); NSData *cookiesdata = [[NSUserDefaults standardUserDefaults] objectForKey:@"MySavedCookies"]; if([cookiesdata length]) { NSArray *cookies = [NSKeyedUnarchiver unarchiveObjectWithData:cookiesdata]; NSHTTPCookie *cookie; for (cookie in cookies) { [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie]; } } NSLog(@"%@", @"PersisteWebCookie Restored"); }
-
[sql] 쿼리로 문자열 검색해서 일괄 치환하기
-
[php] XE 관리자 IP대역 설정 오류 해결법
-
[c] 64bit 머신에서 inet_ntoa() 사용시 Segment fault 대처 방법법
-
[ios] NSString 간단한 정규식 사용법
-
[ios] iOS 6.0 이상 회전 하기 (이전 버전과 비교 변경 부분)
-
[ios] 네트워크 인디케이터(NetworkActivityIndicator) 작동
-
[js] 주소표시줄 URL 읽어오기 (변경까지)
-
[linux] CentOS 6.x Cati 설치 (yum)
-
[ios] UIWebView에서 NSURLRequest에 Cookie 실어 보내기
-
[ios] UIWebView 쿠키 유지
-
[php] substr() 한글 자를 때 깨짐 방지
-
[linux] iconv를 이용하여 euc-kr 문서를 utf-8로 대량으로 변환하기