【问题标题】:Get previous page in UIWebView hierarchy获取 UIWebView 层次结构中的上一页
【发布时间】:2013-04-08 17:48:07
【问题描述】:

我需要能够弄清楚 UIWebView 层次结构中的上一页是什么,以便我可以禁用某些实例上的后退按钮。所以,澄清一下:

 User is on page A - clicks on link
 User is now on page B - clicks on link
 User is now on page C  - clicks on the **back** button
 User is now on page B

我需要能够知道“上一个”页面来自页面 B 是页面 A。不幸的是,我现在使用的方法通常只能确定用户的上一个页面.所以在上面的情况下,它认为之前导航的页面是页面C。

任何帮助将不胜感激! :)

【问题讨论】:

  • 请显示您“正在使用”的内容。
  • 我在 webviewDidFinishLoad 上有这个:previousPage = [[webView.request URL] absoluteString];

标签: iphone ios objective-c xcode uiwebview


【解决方案1】:

每次用户单击链接并加载新页面时,您的 Web 视图委托都会收到一条消息。所以每次都“写下”这些信息!现在你知道“后退”是什么意思了吧。

此外,您可以将 JavaScript 与 UIWebView 对话。 JavaScript 给你一个history 对象。 UIWebView 中的许多关键功能都是通过 JavaScript 实现的! Apple 没有费心在 Objective-C 属性中复制它,因为,为什么要费心呢?

【讨论】:

  • 感谢您的反馈,马特。我有点希望 UIWebView 能提供一种比自己跟踪事物更简单的方法。但我试了一下,它解决了这个问题。我也很高兴您提到了 javascript 解决方案,我会牢记这一点以备不时之需。谢谢!
【解决方案2】:

几年后......

在研究同样的场景时,我想出了一个很好的解决方案。 在 webViewDidFinishLoad 中,检查属性“canGoBack”并相应地隐藏或取消隐藏您的后退按钮。觉得这太酷了,不分享。 :)

if (self.webView.canGoBack)
{
    self.backButton.hidden = NO;
}
else
{
    self.backButton.hidden = YES;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-29
    • 1970-01-01
    • 1970-01-01
    • 2012-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-14
    相关资源
    最近更新 更多