2012-07-24 50 views
1

我正在做一個iPhone應用程序,其中我使用登錄過程的網站OAuth apis登錄,並且uiwebview中的狀態始終保持爲已記錄狀態。我認爲清除uiwebview中的cookie會幫助我註銷。我想要一個註銷選項說每個應用程序。我已經完成了這個工作來清除uiwebview中的所有cookie。在webview中通過JavaScript清理cookie-iphone

1)我已創建一個的script.js並將其加入到具有下面的代碼

function deleteAllCookies() { 
    var cookies = document.cookie.split(";"); 

    for (var i = 0; i < cookies.length; i++) { 
     var cookie = cookies[i]; 
     var eqPos = cookie.indexOf("="); 
     var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie; 
     document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT"; 
    } 
} 

2)我已經在其中有一個註銷按鈕視圖控制器之一加入此代碼項目中。點擊按鈕後,此代碼被執行

- (void)injectJavascript:(NSString *)resource { 
NSString *jsPath = [[NSBundle mainBundle] pathForResource:resource ofType:@"js"]; 
NSString *js = [NSString stringWithContentsOfFile:jsPath encoding:NSUTF8StringEncoding error:NULL]; 

[webView stringByEvaluatingJavaScriptFromString:js]; 
} 


-(void)logoutFromApp 
{  
[self injectJavascript:@"script"]; 
} 

首先我甚至不確定這段代碼是否正常工作。我怎麼知道它是否已經清除了所有的cookies。?意思是,我將如何通知它已成功清除或不清除?

正在做什麼是做這件事的最好方法,或者是否有任何其他方法來提供註銷選項?

回答

2

OK我解決了問題..

#import <Foundation/NSHTTPCookie.h> 


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

這會刪除UIWebView中所有的餅乾。很棒。

+0

+1,它可以幫助我太多謝謝... – ChenSmile 2014-02-04 10:55:27

+0

我很高興它幫助:-) – 2014-02-05 07:21:54

+0

我只有6個月的exp。希望你有很好的exp ...真的很感謝你的工作 – ChenSmile 2014-02-05 09:02:25