8

我有一个应用程序将网站的部分内容拉入 UIWebViews。这些页面使用本地存储来保持状态,例如最后查看的内容和各种设置等。

我看到正在创建 UIWebViews 本地存储(通过 Web 检查器,设备和应用程序连接到调试机器),但在应用程序关闭后被清除。相关页面在标准浏览器甚至 Mobile Safari 的主站点上正常工作,但在 UIWebViews 中不能正常工作?

我一直在挖掘并看到一些关于使用 iOS6 对本地存储缓存进行更改的讨论,但我不清楚这是否可以工作,如果可以,如何启用它?

在我们不得不切换到使用 cookie 或在服务器端做某事之前,任何人都有明确的答案吗?

谢谢。

4

1 回答 1

5

* 更新 *
确定的 iOS 错误,报告为:#12546916
从 iOS 开始未修复:8.3

UIWebViewWebKitStoreWebDataForBackup在 NSUserDefaults 中设置时会忽略键。

* 原帖 *
这个 NSUserDefaults 键在 iOS 6 中可用:

WebKitStoreWebDataForBackup = YES

我们将它设置在 ApplicationDelegate 的顶部,如下所示:

[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"WebKitStoreWebDataForBackup"];

iOS 6 发行说明在这里讨论:发行说明。它应该告诉 WebKit UIWebView LocalStorage 不是一次性的,并导致它被放置在非一次性的位置。

显然不工作。WebKitStoreWebDataForBackup当应用程序关闭或页面刷新时,iOS 会忽略并删除 LocalStorage。

在调试期间使用 Web Inspector 可以看到创建的本地存储,但是在应用程序关闭并重新启动后它就消失了。

有问题的 html/js 页面在 Firefox、Chrome、Safari 和 Mobile Safari 中查看时有效,但在 UIWebView 中查看页面时无效。

于 2012-10-22T16:04:03.517 回答