woong's

IOS Xcode WebView Cookie 사용하기 본문

Develop/IOS

IOS Xcode WebView Cookie 사용하기

dlsdnd345 2016. 2. 29. 12:11
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

IOS Xcode WebView 사용하기


이번에 webView 작업을 하게되어서 간단히 정리 해보려 합니다.

webView 사용은 정말 간단합니다. webView 사용법 및 Cookie 관리까지

정리 해보려 합니다. webView 의  Cookie 를 따로 관리 하지 않으면 앱을

종료하면 로그인을 다시해야 하는 불편함이 있습니다. 그래서 따로 

Cookie 관리를 해서 로그인 및 Cookie 정보를 유지 시켜 주어야 합니다.


간단하게 webView를 먼저 구성 해야합니다.

StoryBoard 에 webView를 추가하고 헤더에 연결합니다. 연결후 아래 코드를 통해서

네이버 웹화면이 나오는지 확인해 보겠습니다.





1
2
3
4
5
6
7
#import <UIKit/UIKit.h>
 
@interface ViewController : UIViewController
 
@property (strong, nonatomic) IBOutlet UIWebView *webView;
 
@end
cs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 
#import "ViewController.h"
 
@interface ViewController ()
 
@end
 
@implementation ViewController
 
- (void)viewDidLoad {
    [super viewDidLoad];
    
    //데이터 초기화
    [self initdata];
 
}
 
 
/**
 * 데이터 초기화
 */
- (void) initdata{
 
    //웹뷰 초기화
    [self initWebView];
}
 
 
/**
 * 웹뷰 초기화
 */
- (void) initWebView{
    
    NSURL *myURL = [NSURL URLWithString:@"http://www.naver.com"];
    NSURLRequest *myURLReq = [NSURLRequest requestWithURL:myURL];
    [_webView loadRequest:myURLReq];
}
 
@end
 
 
 
cs

위와 같이 작성후에 화면을 확인해보면 원하는 화면이 나타납니다.



이제 로그인을 하고 앱을 종료해보면 로그아웃되는 현상을 볼수 있습니다.

따로 Cookie 처리를 해야 로그아웃되는 현상을 해결 할수 있는것 같습니다.


앱이 종료되거나 백그라운드로 내려갈때 쿠키를 저장


1
2
3
4
5
6
7
8
 
- (void)applicationDidEnterBackground:(UIApplication *)application {
    
    NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies];
    NSData *cookieData = [NSKeyedArchiver archivedDataWithRootObject:cookies];
    [[NSUserDefaults standardUserDefaults] setObject:cookieData forKey:@"Cookies"];
}
 
cs


앱이 다시실행 될때 쿠키저장을 로드


1
2
3
4
5
6
7
8
9
10
11
- (void)applicationDidBecomeActive:(UIApplication *)application {
    
    NSData *cookiesData = [[NSUserDefaults standardUserDefaults] objectForKey:@"Cookies"];
    if ( [cookiesData length] )
    {
        NSArray *cookies = [NSKeyedUnarchiver unarchiveObjectWithData:cookiesData];
        for ( NSHTTPCookie *cookie in cookies )
            [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
    }
    
}
cs


위와 같이 처리를 해주면 앱이 종료되어도 Cookie 가 유지 되어서 재 로그인하는 번거로움을 피할수있습니다.


'Develop > IOS' 카테고리의 다른 글

Xcode Realm 사용하기  (0) 2016.03.15
Xcode Unit Test 하기  (0) 2016.03.14
IOS Xcode Swift 프로젝트에서 ObjectC 사용하기  (1) 2016.02.19
IOS Xcode Pull To Refresh 사용하기  (2) 2016.02.18
IOS Xcode CollectionView 사용하기  (3) 2016.02.17
Comments