iOS uiwebview goBack 历史控件

Posted

技术标签:

【中文标题】iOS uiwebview goBack 历史控件【英文标题】:iOS uiwebview goBack history control 【发布时间】:2012-06-03 17:37:14 【问题描述】:

我在 uiwebview 上加载“webpage1”并将其第一个请求保存在实例变量“webviewHistory”上。然后,我必须重用那个 webview 来加载另一个页面,“webpage2”(也将它的第一个请求保存到“webviewHistory”),历史应该从这个请求开始。问题是如果我从“webpage2”执行 goBack(按钮 IBAction),我可以继续返回到“webpage1”历史并关注。 如果我检查请求并与初始保存的比较,工作!但不是重定向,例如,如果我触发对 www.youtube.com 的请求,请求将被重定向到 m.youtube.com 并且第一个不会保存为导航历史记录!如何解决?

if (![webViewSocial.request.URL.absoluteString isEqualToString:self.webviewHistory])
    [webViewSocial goBack];
    

【问题讨论】:

【参考方案1】:

UIWebviews 具有实例方法,允许您在历史记录中前后移动,而无需跟踪最后一个请求。您是否有特殊原因专门保存最后一个请求?

示例代码:

if ([webView canGoBack]) 
    [webView goBack];

如果你想玩的话,这里有一个简单的 uiwebview 浏览器项目: https://github.com/msencenb/UIWebView-Example

【讨论】:

我已经在使用这种方法,但我需要启用或禁用 goBack 操作,具体取决于请求是否比第一个加载的页面更旧! 好的。我认为您应该使用 uiwebview 委托方法等待在第一页上发生重定向(以便加载正确的第一页): webViewDidFinishLoad: 然后保存到您的实例变量。【参考方案2】:

对于 swift 3 版本的 Msencenb 答案:

if webView.canGoBack 
    webView.goBack()

【讨论】:

以上是关于iOS uiwebview goBack 历史控件的主要内容,如果未能解决你的问题,请参考以下文章

ios之UIWebView常用方法

iOS 清除 UIWebView 的回溯历史

IOS UIWebView(浏览器控件)

Syncfusion 控件未在 iOS 本机 UIWebView 上加载

WKWebView goBack(_:) evaluateJavaScript 如果返回超过 2 个历史记录失败

iOS开发之UIWebView