2012-07-24 46 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