我有一个加载本地 HTML 文件的应用程序。 HTML 文件在 iFrame 中加载 Google map 。该应用程序有一个后退按钮,用于检查 UIWebView.canGoBack 和 UIWebView.isLoading
在 webViewDidStartLoad 和 webViewDidFinishLoad 中,我按照建议跟踪未完成的负载 here ,这样一旦我的负载达到零,我就可以更新后退按钮的状态等。
在第一次加载控件时,一旦所有的 webViewDidFinishLoads 都发生了,canGoBack 和 isLoading 都将返回 NO。
在控件的第二次加载时,一旦所有 webViewDidFinishLoads 发生,isLoading 就会“挂起”,总是返回 YES,并且(我假设结果)canGoBack 也将返回 YES,即使它位于堆栈的顶部。
附加 Safari 的调试器我可以确认当 isLoading 返回 YES 时没有未完成的 HTTP 请求。
我 note that others过去曾在 iOS 和 Safari 中看到过 canGoBack 行为的错误。
问题:
- UIWebView.isLoading 通过什么来确定网络请求是否完成?
- UIWebView.canGoBack 的值是否确实与 isLoading 标志相关联?
- 任何人都可以建议一种解决方法来评估 canGoBack 吗?
Best Answer-推荐答案 strong>
我也遇到了这个问题。我有一个 html 页面,其中包含由 javascript 代码插入的 iframe。src 属性为空。我发现当 iframe 附加到 dom 树时,UIWebView触发 shouldStartLoadWithRequest: 与 about:blank URL。删除 javascript 代码后,一切正常。
关于ios - UIWebView isLoading 返回 YES,没有未完成的负载,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/29526694/
|