Dia*_*rat 17 iphone uiwebview uiwebviewdelegate
我有使用a实现的基本Web浏览器UIWebView.我注意到对于某些页面,没有一个UIWebViewDelegate方法被调用.
发生这种情况的示例页面是:http://www.youtube.com/user/google.以下是重现问题的步骤(确保NSLog在控制器的UIWebViewDelegate方法中插入调用):
UIWebView
[注意这里,UIWebViewDelegate在页面加载时调用方法]我知道这不是UIWebView代理没有正确设置的问题,因为委托方法在加载其他链接时会被调用(例如,如果你尝试点击链接将你带到youtube之外,你会注意到代表被调用的方法).
我最初的直觉是它可能是因为页面是使用AJAX加载的,这可能不会调用委托方法.但是当我检查iPhone的Safari时,它没有出现这个问题,所以它一定是我身边的东西.
我也注意到Three20的TTWebController问题与我的问题完全相同.
但是这个问题引起的问题是,如果没有调用委托方法,我将无法更新UI以在加载新请求时启用/禁用后退和前进浏览按钮.
并且想出为什么会发生这种情况或者如何在新请求发生时更新UI?
lxt*_*lxt 20
这不是iOS错误 - 页面实际上并没有重新加载.在新页面请求之后触发UIWebView委托,但该页面不会这样做.
当您按照描述单击该页面上的视频链接时,请仔细查看桌面Safari中发生的情况.请务必注意地址栏.地址会改变,但关键的是页面不会重新加载.
这全部由JavaScript处理,而不是通过重新加载页面.简单地说,页面永远不会重新加载,因此没有理由调用UIWebView委托.
如果您不相信我,请最终证明这一点,尝试重复您禁用JavaScript时描述的步骤.您会注意到页面的行为完全不同.
| 归档时间: |
|
| 查看次数: |
8898 次 |
| 最近记录: |