我在我的应用中构建了一个简单的嵌入式浏览器。在浏览器控制器中,我在viewWillAppear:
中显示加载指示符,将其隐藏在webViewDidFinishLoad:
委托方法中。现在的问题是,我遇到了请求URL被重定向到新URL的情况,该URL在用户真正获得任何结果之前发送新请求。这意味着在我们仍然有空屏幕时删除加载指示符。
案例:http://t.co/XXX - > http://twitter.com/XXX - > https://mobile.twitter.com/XXX
我需要一种可靠的方法来检测这是否是webViewDidFinishLoad:
中的最后一次重定向。我真的不在乎所请求页面的所有内容/媒体(例如图像)是否被完全加载,这个问题的大部分答案都集中在它上面。除非屏幕上显示任何内容,否则我关心的不是删除加载指示器。
我已经看到了webView:shouldStartLoadWithRequest:navigationType:
中跟踪请求的技巧,并检查webViewDidFinishLoad:
中的计数是否为零,但是假设非串行请求,这不是这里的情况。作为一种解决方法,有人建议将此操作延迟约1秒,以便它仍然可以跟踪串行请求,但我不认为它是可靠/干净的方式。
有什么建议吗?