保存和恢复 UIWebView 浏览会话

Posted

技术标签:

【中文标题】保存和恢复 UIWebView 浏览会话【英文标题】:Saving and restoring a UIWebView browsing session 【发布时间】:2012-09-28 19:51:10 【问题描述】:

使用 UIWebView 类,是否可以在应用程序进入后台时保存浏览会话,然后在应用程序被激活或重新启动时完全恢复它?根据文档,UIWebView 类确实符合 NSCoding 协议,但归档 UIWebView 类的实例也会保留 cookie 页面的 javascript 状态(也可能是 html5 本地存储),以便页面恢复时具有完全相同的外观和完全相同的功能?我的应用查看的页面包含大量分散的图形和 JavaScript,这些页面在蜂窝网络上加载时间过长,因此保存浏览会话将是一个非常非常好的改进。

【问题讨论】:

【参考方案1】:

可能不会。甚至 Safari 也不这样做。

所有 UIView 类都符合 NSCoding 以支持从 nib 文件取消归档,以设置用户界面。这是一种特殊情况,而不是其他类存在的通用归档/取消归档机制。

您可能可以做一些事情:

保存并恢复滚动位置。 积极缓存数据;查看 URL 加载系统的文档,这是 UIWebView 使用的。默认情况下它会进行一些缓存,但我相信您可以对其进行调整以做更多的事情。 保存和恢复会话 cookie,它们通常会被丢弃(请参阅 HTTPCookieStorage)。

【讨论】:

以上是关于保存和恢复 UIWebView 浏览会话的主要内容,如果未能解决你的问题,请参考以下文章

如何将UIWeb视图控制器的内容共享到社交网站?

如何将 UIWeb 视图控制器的内容分享到社交网站?

在UIWebView中检测下载

返回上一页时,保存恢复浏览记录(模拟返回不刷新)

如何清除/禁用 UIWebView 的浏览历史记录

Spring Security - 可以恢复丢失的会话吗?