我在iOS 5中发现了一个bug。
当你使用UIWebView并访问一些站点时,你创建你的历史链接,看起来像任何其他浏览器。
如果您喜欢使用导航栏,可以使用goBack
和goForward
函数
在ios4.3及以下版本中,当你调用这个函数时,程序会调用委托函数
webView:shouldStartLoadWithRequest:navigationType:
但在iOS 5.0中,这可能发生,也可能不发生。如果站点在缓存中,则不会调用此函数。我看到这种情况只发生在1个关卡中(1次点击goBack或1次点击goforward),在第二次点击中它传递了函数。
为什么他们改变????即使它在缓存中,程序也必须请求我…现在如何解决这个问题:我正在尝试与浏览器历史记录和我检查url堆栈。但是我有问题;
没有别的办法了吗?
- 我看不到浏览器历史记录?我必须创建我的清单?
- 我不能清理缓存来强制它在函数中传递?
吗?
这不是一个bug,如果设备上有足够的可用RAM,那么它会在内存中保留一些页面,因此当您返回时它们不会被"加载"。
你应该在自己的控制器上创建自己的goBack:
和goForward:
动作,并将goBack/goForward按钮链接到它们:
- (IBAction)goBack:(id)sender
{
[self doStuff];
[self.webView goBack:sender];
}