我有一个使用 UIWebview 的应用程序,它用于浏览不同的站点/url。我需要一个类似于 iOS 移动浏览器“删除所有网站数据”的“清除客户端数据”选项,用于删除 cookie/本地存储。我知道如何制作 cookie,但我无法弄清楚如何删除/清除后者(本地存储)
How to remove HTML5 persistant databases in UIWebView?讨论了这个,但我没有看到它对我的上述案例有何影响。 localStorage.clear() javascript 需要在 UIWebview stringByEvaluatingJavaScriptFromString() 方法中运行,但这在我的测试中似乎不起作用。 上述方法的另一个问题是,localStorage 是特定于 url/站点的 - 但我想清除 localStorage 中的所有内容。
尝试删除/复制 Appln/Library/WebKit/LocalStorage 文件夹 - 但这并没有解决访问限制错误。
有什么建议/方向吗?
最佳答案
您应该能够清理您应用的缓存目录的内容:
编辑:由于错误管理错误,按照@RaphaelSchweikert 的建议更新代码。
// first, remove the cookies.
NSHTTPCookie *cookie;
NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (cookie in [storage cookies]) {
[storage deleteCookie:cookie];
}
NSString *path = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
NSArray *array = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:nil];
for (NSString *string in array) {
NSLog(@"Removing %@", [path stringByAppendingPathComponent:string]);
if ([[string pathExtension] isEqualToString:@"localstorage"])
[[NSFileManager defaultManager] removeItemAtPath:[path stringByAppendingPathComponent:string] error:nil];
}
在我模拟器的那个文件夹中,我看到许多 .localstorage 文件 ;-) 试试让我知道
关于ios - 如何使用 UIWebview 删除 iOS 应用程序的 html5 本地存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8500334/