簡單的問題,如果有人可以回答,那將是太棒了。在每個應用程序啓動時使UIWebView像新的一樣
我有一個簡單的UIWebView用於登錄到某個服務。但是,當我重新加載應用程序時,它會保持登錄狀態。我需要做的就是每次應用程序啓動時都像新建一樣創建UIWebView。我不確定在界面構建器中是否有某個選項,或者某種方法可以放在應用程序終止時調用的方法中,以便它釋放WebView或其他東西。
簡單的問題,如果有人可以回答,那將是太棒了。在每個應用程序啓動時使UIWebView像新的一樣
我有一個簡單的UIWebView用於登錄到某個服務。但是,當我重新加載應用程序時,它會保持登錄狀態。我需要做的就是每次應用程序啓動時都像新建一樣創建UIWebView。我不確定在界面構建器中是否有某個選項,或者某種方法可以放在應用程序終止時調用的方法中,以便它釋放WebView或其他東西。
你需要做的是不保存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
我的答案將在多個部分涵蓋多個基地。
1 - 這是可能的應用程序有一個cookie發佈新的應用的舊Cookie保持與登錄信息,因此,你仍然會在
殺餅乾登錄時爲用戶設置這樣就算了,在UIWebView的負載(即在viewwillload或其他方式)前嘗試這種
NSHTTPCookie *cookie;
NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (cookie in [storage cookies]) {
[storage deleteCookie:cookie];
}
2 - 這是一個多線程的手機(iOS4的或更新的版本在3GS或更新版本)上?你確定該應用程序正在終止,而不是隻是背景?如果是這種情況,並且您剛剛啓動之前的應用程序(您仍在登錄),則需要掛鉤 - (void)applicationDidBecomeActive:(UIApplication *)應用程序,並刪除舊的Web視圖並添加一個新的。
我只有一個問題。你說「放置在webview代碼中」,但你在哪裏具體談論?防爆。 viewDidLoad – JTApps 2012-02-27 02:08:24
@JTApps我編輯了我的消息,希望它能幫助你。 – Nathan 2012-02-27 02:14:16
太棒了。謝謝= D – JTApps 2012-02-27 02:15:40