2012-02-27 1 views
1

누군가가 대답 할 수 있다면 환상적인 간단한 질문입니다.UIWebView를 각 앱 시작시 새 것처럼 만들기

특정 서비스에 로그인하는 데 사용되는 간단한 UIWebView가 있습니다. 그러나 응용 프로그램을 다시로드하면 로그인 상태가 유지됩니다. 응용 프로그램이 시작될 때마다 새로운 UIWebView를 만들 수 있어야합니다. 인터페이스 빌더 어딘가에 옵션이 있는지, 또는 앱이 종료 될 때 호출되는 메서드에 배치 할 수있는 일종의 메서드 인 경우 WebView 또는 기타를 릴리스 할 수 있는지 확실하지 않습니다.

답변

4

당신이해야 할 일은 UIwebView의 캐시를 저장하지 않는 것입니다. 다음과 같은 간단한 코드를 사용하면됩니다.

NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:0 diskCapacity:0 diskPath:nil]; 
[NSURLCache setSharedURLCache:sharedCache]; 

코드를 UIwebview 코드에 삽입하십시오.

[[NSURLCache sharedURLCache] removeAllCachedResponses]; 

편집 :

또는 ApplicationDidFinishLoad에서

(같은 또는 뭔가, 하하) 당신과 함께 캐시를 제거 할 수 있습니다 당신은 코멘트에 뭔가를 요청했습니다

. ,,

NSURLRequest *request = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://www.google.com"]]; 

     UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0.f, 0.f, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height - 20.f)]; 
     [webView setAutoresizingMask:(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth)]; 

//No Cache\\ 

     NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:0 diskCapacity:0 diskPath:nil]; 
     [NSURLCache setSharedURLCache:sharedCache]; 

//No Cache\\ 

     webView.delegate = self; 
     [webView loadRequest:request]; 
     [self.view addSubview:webView]; 

확인

가있는 UIWebView

for(NSHTTPCookie *cookie in [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]) { 

    if([[cookie domain] isEqualToString:someNSStringUrlDomain]) { 

     [[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie]; 
    } 
} 

행운을 빌어에서 알 쿠키를 특정 요청

[[NSURLCache sharedURLCache] removeCachedResponseForRequest:NSURLRequest]; 

을 제거 또는 삭제 : 당신은 아래의 코드처럼 뭔가를 할 수 Nathan

+0

한가지 질문이 있습니다. 당신은 "webview 코드에서의 장소"라고 말했지만, 구체적으로 어디에서 이야기하고 있습니까? 전의. viewDidLoad – JTApps

+0

@JTApps 내 메시지가 편집되어 도움이되기를 바랍니다. – Nathan

+0

굉장합니다. 감사합니다 = D – JTApps

1

내 답변은 여러 곳을 커버하기 위해 여러 부분으로 구성됩니다.

1 -.이 앱이 오래된 쿠키가 로그인 정보로 유지하기 때문에 여전히 쿠키를 죽일

에 기록 될 수있는 새로운 응용 프로그램을 실행할 때 너무도 사용자에 대한 설정 쿠키가 가능, 합니다 (viewwillload 또는 다른 방법 즉)에있는 UIWebView로드되기 전에 이것을 시도

NSHTTPCookie *cookie; 
NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; 
for (cookie in [storage cookies]) { 
    [storage deleteCookie:cookie]; 
} 

2 -이 (A 3GS 이상에 iOS4 이상) 다중 스레드 전화에 있습니까? 배경으로가는 것과는 반대로 앱이 종료되고 있다고 확신합니까? 이 경우에 이전 응용 프로그램 (아직 로그인 한 곳)을 실행하기 만하면 - (void) applicationDidBecomeActive : (UIApplication *) 응용 프로그램에 연결하여 이전 웹보기를 제거하고 새 웹보기를 추가해야합니다 .