【问题标题】:iOS uiwebview goBack history controliOS uiwebview goBack 历史控件
【发布时间】: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];
    }

【问题讨论】:

    标签: iphone objective-c ios xcode cocoa-touch


    【解决方案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()
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多