【发布时间】:2013-03-17 06:36:35
【问题描述】:
我有一个应用程序,用户可以在其中浏览一堆本地存储的 HTML 文件。我有一个UIWebView,使用UIWebViewDelegate 正确配置。通常,当用户点击链接时,会调用shouldStartLoadWithRequest,稍后再调用webViewDidFinishLoad。
但是,如果链接指向与当前显示的页面相同的页面上的锚点,则仅调用 shouldStartLoadWithRequest。 webViewDidFinishLoad 不会触发。
从某种意义上说,我认为这可能是预期的行为,因为页面内导航不需要重新加载页面。但是,页面内导航完成后,我真的需要一个地方来挂钩调用堆栈。最佳解决方案会在任何类型的导航结束时通知我,无论是从另一个页面、页内操作还是前进/后退操作。
到目前为止,我最好的解决方法是在我的 shouldStartLoadWithRequest 方法结束时调用 performSelector: withObject: afterDelay:,但我对此并不满意。
有谁知道我该如何正确解决这个问题?任何见解都值得赞赏!
【问题讨论】:
-
我没有看到任何锚点点击都调用了 shouldStartLoadWithRequest,只有整页加载。我很好奇这种行为是否已经改变,或者如果没有,我一定是做错了什么。
标签: ios objective-c uiwebview navigation uiwebviewdelegate