HTML 5本地存储在iOS 6,7或8上的UIWebView中不起作用

Cli*_*udo 8 javascript uiwebview ios

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

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

我一直在挖掘并看到一些关于iOS6本地存储缓存更改的讨论,但是我没有清楚地意识到这是否可行,如果是,如何启用它?

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

谢谢.

Cli*_*udo 5

*更新*
明确的iOS错误,报告为:#12546916
自iOS 版本不固定:8.3

WebKitStoreWebDataForBackup在NSUserDefaults中设置时,UIWebView忽略密钥.

*原始帖子*
此NSUserDefaults密钥在iOS 6中可用:

WebKitStoreWebDataForBackup = YES
Run Code Online (Sandbox Code Playgroud)

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

[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"WebKitStoreWebDataForBackup"];
Run Code Online (Sandbox Code Playgroud)

iOS 6发行说明在此处讨论:发行说明.它应该告诉WebKit UIWebView LocalStorage不是一次性的并且使它被放置在非一次性位置.

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

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

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