如何清除/禁用 UIWebView 的浏览历史记录
Posted
技术标签:
【中文标题】如何清除/禁用 UIWebView 的浏览历史记录【英文标题】:How to clear/disable browsing history for UIWebView 【发布时间】:2013-11-01 21:33:24 【问题描述】:我正在构建一个 iPad 应用程序以在公共多用户场景中使用,并希望允许临时 Web 浏览会话。但是,当会话结束时,我希望应用清除所有隐私浏览数据,包括缓存、cookie 和历史记录。
我已经想出了如何清除缓存和 cookie,但我无法了解历史记录。
为了清楚起见,我不想清除 UIWebView
的后退/前进历史记录(我每次都在创建一个新的 UIWebView
实例,所以这不是问题)。我希望清除整个应用程序的浏览历史记录,这样链接就不会显示为已访问。
例如,如果我在 Google 上搜索某项内容并访问其中一个匹配项,那么下次我在 Google 上搜索该链接时,该链接会变为紫色。我希望删除所有历史记录和过去的网页,以便在重置浏览会话后没有链接保持紫色。
或者,如果我可以完全禁用历史记录跟踪(例如 Chrome 或 Firefox 的“隐私浏览模式”),那也是可以接受的。
更新:有趣的是,我注意到退出并重新启动应用程序会隐式清除浏览历史记录,并且链接在启动时再次显示为蓝色。 然而,不幸的是,这对我没有任何帮助,因为该应用程序的设计目的是在许多用户之间长时间运行。我们无法在每次会话后退出应用程序。
更新 2: 进一步的实验表明,网络历史肯定是在每个应用程序的基础上维护的。我在 Safari 中搜索了相同的内容,每次在我的应用程序中显示为紫色的链接在 Safari 中显示为蓝色。必须有一种方法可以从应用程序内访问此本地存储。
【问题讨论】:
我认为历史不会在实例之间持续存在。你能从superview中删除webview,创建一个新的,然后重新添加吗? @AaronBrager 不,它肯定会持续存在(不是后退/前进列表,而是以前访问过的站点)。我正在会话之间创建一个新的 webView 实例。 @devios1 遇到同样的问题,请问您有什么办法可以清除浏览器历史记录吗? @jigs 对不起,我不相信我能弄明白 【参考方案1】:如果你愿意使用私有框架,这里有一个讨论:How to clear back forward list in UIWebview on iPhone?
如果这不适合您,那么我能想到的唯一其他选择就是删除 web 视图,然后重新创建它。
【讨论】:
我正在删除它并重新创建它。访问过的网站历史会一直存在,直到应用程序被杀死。另外,我需要它被 App Store 接受。 我的朋友看起来不太可能 - 请参阅***.com/questions/9181098/…以上是关于如何清除/禁用 UIWebView 的浏览历史记录的主要内容,如果未能解决你的问题,请参考以下文章