我有一个应用程序正在加载本地HTML文件。HTML文件在iFrame中加载谷歌地图。该应用程序有一个后退按钮,用于检查UIWebView.canGoBack和UIWebView.is正在加载
在webViewDidStartLoad和webViewDidFinishLoad中,我按照这里的建议跟踪未完成的负载,这样,一旦我达到零未完成负载,我就可以更新后退按钮的状态,等等。
在控件的第一次加载时,一旦所有webViewDidFinishLoads都发生,canGoBack和isLoading都将返回NO。
在控件的第二次加载中,一旦所有webViewDidFinishLoads都发生了,isLoading就会被"挂起",总是返回YES,并且(我认为这是结果),canGoBack也会返回YES——即使它位于堆栈的顶部。
附加Safari的调试器,当isLoading返回YES时,我可以确认没有未完成的HTTP请求。
我注意到,其他人过去在iOS和Safari中看到过canGoBack行为的错误。
问题:
- UIWebView.isLoading查看什么来确定是否完成了web请求
- UIWebView.canGoBack的值在某种程度上与isLoading标志绑定,这是真的吗
- 有人能为评估canGoBack提出一个变通方案吗
我也遇到了这个问题。我有一个html页面,其中有一个由javascript代码插入的iframe。src属性为空。我发现当iframe附加到dom树时,UIWebView触发器应该StartLoadWithRequest:withabout:blankURL。在我删除javascript代码后,一切都很好。