iOS 清除 UIWebView 的回溯历史

Posted

技术标签:

【中文标题】iOS 清除 UIWebView 的回溯历史【英文标题】:iOS clear back history of UIWebView 【发布时间】:2012-03-03 13:05:13 【问题描述】:

我正在开发一个通用的 ios 应用程序,该应用程序从 RSS 提要获取新闻。新闻提要的正文是 html,因此我将其显示在 UIWebView 中。我考虑了用户单击链接的时间,以便他们可以在原始新闻和他们在该新闻文章中单击的链接之间来回导航。

在 iPhone 上,当用户退出单个新闻文章的 ViewController 并选择不同的新闻文章时,UIWebView 创建了新鲜且完美的工作。但是在我的 iPad 版本上,我使用 UISplitViewController 并且当用户单击左侧的不同新闻文章时,右侧会更新,但 UIWebView 不是全新创建的。

我的问题是 UIWebView 保留了用户可能在不同的新闻文章中点击过的其他链接的历史记录。

以下是 iPad 版本的流程

-用户点击第一篇新闻文章 --用户点击本文中的链接。 WebView 转到链接。 --用户点击返回。 WebView 转到新闻文章的原始内容 - 用户点击不同的新闻文章。 --用户点击本文中的链接。 WebView 转到链接。 --用户点击返回。 WebView 转到在第一篇新闻文章中点击的链接 --用户必须再次点击返回才能看到这篇新闻文章的原始内容

我希望在选择新闻文章时,将UiWebView启动作为“Clean Slate”。

【问题讨论】:

【参考方案1】:

在最坏的情况下,您可以简单地创建一个新的。您可以收听使用 UIWebViewDelegate 协议按下的链接并查看按下的链接,然后简单地重新创建 Web 视图。

【讨论】:

嗨 Fisk,我尝试过类似的方法,但我遇到了问题,在我这样做后我失去了对 WebView 的控制。我所做的是释放 WebView,然后使用 webView = [UIWebView alloc] init]; 重新创建它。那有意义吗?谢谢!!! 您不能仅仅创建一个新的UIWebView。您必须首先从其父视图中删除旧的UIWebView 并将新的UIWebView 添加为新的子视图。您可以重复使用旧 UIWebView 的框架并将其设置为新 UIWebView 的框架,以确保它位于同一位置。 哦,是的。不敢相信我看过这个。这对我来说应该是完美的。我会试一试。谢谢!

以上是关于iOS 清除 UIWebView 的回溯历史的主要内容,如果未能解决你的问题,请参考以下文章

IOS 网络浅析-(十二 UIWebView简介)

iOS下JS与OC互相调用--UIWebView 拦截URL

滚动到 UIWebView 上的文本 [关闭]

iOS uiwebview goBack 历史控件

你如何清除 UIWebView 的缓存?

iOS 让 WKWebView 支持 NSURLProtocol