UIWebView正在加载,返回YES,没有未完成的加载



我有一个应用程序正在加载本地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行为的错误。

问题:

  1. UIWebView.isLoading查看什么来确定是否完成了web请求
  2. UIWebView.canGoBack的值在某种程度上与isLoading标志绑定,这是真的吗
  3. 有人能为评估canGoBack提出一个变通方案吗

我也遇到了这个问题。我有一个html页面,其中有一个由javascript代码插入的iframe。src属性为空。我发现当iframe附加到dom树时,UIWebView触发器应该StartLoadWithRequest:withabout:blankURL。在我删除javascript代码后,一切都很好。

最新更新