我正在做一个 iphone 应用程序,我使用网站的 OAuth api 登录以进行登录过程,并且 uiwebview 中的状态始终保持登录状态。我认为清除 uiwebview 中的 cookie 会帮助我注销。我想对应用程序说一个注销选项。我这样做是为了清除 uiwebview 中的所有 cookie。
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。?意思是,如何通知我它是否已成功清除?
我选择做的是最好的方法还是有其他方法可以提供注销选项?