如何使用UIWebview删除iOS应用程序的html5本地存储

我有一个使用UIWebview的应用程序,用于浏览不同的网站/url。 我需要一个“清除客户端数据”选项,类似于iOS移动Safari“删除所有网站数据”,删除Cookie /本地存储。 我知道如何做cookies,但我无法弄清楚如何删除/清除以后(本地存储)

如何删除UIWebView中的HTML5持久数据库? 讨论这个,但我没有看到如何适用于我的以上情况。 localStorage.clear()的JavaScript需要在UIWebview stringByEvaluatingJavaScriptFromString()方法运行,但这似乎并没有在我的testing工作。 另一个与上述方法的关注是,localStorage是url/网站特定 – 但我想清除localStorage内的所有内容。

尝试删除/复制Appln / Library / WebKit / LocalStorage文件夹 – 但这没有解决访问限制错误。

任何build议/方向请?

您应该可以清除应用程序的Caches目录的内容:

编辑:由于错误的错误pipe理,build议@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文件;-)请尝试让我知道

请注意,如果您使用PhoneGap,则还必须清除其本地存储caching的内部备份:

 //Remove the localstorage db NSString *path = [[[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"Backups"] stringByAppendingPathComponent:@"localstorage.appdata.db"]; [[NSFileManager defaultManager] removeItemAtPath:path error:nil]; //Also remove the cached versions path = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject]; for (NSString *string in [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:nil]) { if ([[string pathExtension] isEqualToString:@"localstorage"]) { [[NSFileManager defaultManager] removeItemAtPath:path error:nil]; } }