2012-10-23 19 views
1

제 질문에 대한 답변으로 StackOverflow에서 거의 모든 질문을 검색했습니다. 어떤 유용한 링크 나 튜토리얼이 특정 도메인에 대한 쿠키를 삭제하는 것이 가장 좋은 방법이라고 말한 적이 없습니다. 누군가가 나를 도울 수 있으면 제발.iOS의 특정 도메인에 대한 쿠키를 삭제하는 방법은 무엇입니까?

+1

이 질문은 당신에게 을 도울 수 http://stackoverflow.com/questions/8154428/clear-cookies-for-a-given-ios-app?answertab=votes#tab-top –

+0

나는 해결책을 발견 . 같은 문제가있는 사람들을 돕고 싶었습니다. 내 질문과 관련된 완벽한 대답은 없습니다. –

답변

8

해결책을 직접 찾았습니다. UIWebView에서 전체 쿠키를 삭제하려면이 작업을 수행하십시오.

NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; 
NSHTTPCookie *cookie; 
for (cookie in [storage cookies]) { 
    NSLog(@"%@", cookie); // Print the deleted cookie. 
    [storage deleteCookie:cookie]; 
} 
[[NSUserDefaults standardUserDefaults] synchronize]; 

하나의 사이트 또는 도메인에 특정한 쿠키를 삭제하려면이 작업을 수행하십시오.

NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; 
NSHTTPCookie *cookie; 
for(cookie in [storage cookies]) { 
    if([[cookie domain] rangeOfString:@"siteName(or)domainName"].location != NSNotFound) { 
    NSLog(@"cookie to be deleted:%@", cookie); 
    [storage deleteCookie:cookie]; 
    } 
} 

위 코드에서 siteName (또는) DomainName은 쿠키를 제거하려는 사이트로 바꾸 었습니다. 모든 도메인에 하위 도메인이 있음을 알아야합니다. 그 곳에서 gobal 도메인 이름을 주면 subDomains에 대한 쿠키를 삭제하지 않을 것입니다. LinkedIn의 예를 들어, in.linkedIn.com, api.linkedIn.com 등의 많은 하위 도메인이 있습니다. http://www.linkedin.com은 gobal 도메인 이름으로, 하위 도메인에 대한 쿠키는 삭제하지 않을 것입니다.

NSHTTPCookie에는 도메인 속성이 있으므로 모든 도메인 이름을 가져오고 NSString의 rangeOfString : 메서드를 사용하여 String이있는 도메인을 가져옵니다 (예 : linkedin). 삭제를하면 모든 도메인의 쿠키가 삭제됩니다.

나는 적어도 내 게시물이 미래에 누군가를 도울 수 있기를 바랍니다.

관련 문제