ログインプロセスにWebサイトのOAuthAPIを使用してログインし、uiwebviewのステータスが常にログインしたままになるiPhoneアプリケーションを実行しています。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)ログアウトボタンのあるViewControllerの1つにこのコードを追加しました。ボットンがクリックされるとすぐに、このコードが実行されます
- (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"];
}
まず第一に、このコードが機能しているかどうかさえわかりません。すべてのCookieがクリアされたかどうかはどうすればわかりますか?つまり、クリアに成功したかどうかはどのように通知されますか?
これを行うための最良の方法は何を選択するのですか、それともログアウトオプションを提供する他の方法はありますか?