如何清除/禁用 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 的浏览历史记录的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中使用 WebBrowser 控件清除浏览历史记录

如何在 UIWebView 中禁用 cookie?

浏览历史记录清除网页后注销[重复]

Edge浏览器怎样设置退出时删除浏览历史记录?

谷歌浏览器自动删除历史记录

历史记录如何删除