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

标签 ios html uiwebview

我有一个使用 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/

相关文章:

html - 如何在 HTML 中显示 Web 服务器文件列表

jquery - 强制复选框始终提交,即使未选中也是如此

ios - 在代码中设置 UIWebView 的高度

cocoa-touch - 在 IOS4.0 中使用 UIWebView 加载请求时发生内存泄漏

iphone - 在 iPhone 中下载和查看 PDF

ios - 在 iPhone 的 UITableViewController 中列出歌曲?在 Storyboard 中工作,并非没有它

javascript - 我不能用 jquery 以正确的方向扩展 div?

ios - 在 MPMusicPlayerController 中随机播放 MPMediaItemCollection,但让用户选择第一项?

ios - 即将到期的内部分发配置文件和证书

iphone - 如何打开从 UIWebView 到新 UIWebView 的任何链接?