【发布时间】:2015-05-12 07:49:17
【问题描述】:
我通过 WkWebView 导航到的本地 HTML 页面上有一个远程 Javscript 资产标签,该标签永远不会完成下载(在这两种情况下,iOS 设备未连接到互联网,或者设备的互联网速度太慢) .
不幸的是,WKWebView 永远不会中止尝试下载此资源,也永远不会移动到我的 WKNavigationDelegate(即既没有调用 -webView:didFailNavigation:withError: 也没有调用 -webView:didFinishNavigation: neither),因此用户被困在一个永远无法完全解析的空白 HTML 页面并且永远不会出错。
谢天谢地,在某些情况下,我通过 Safari 远程 iOS Javascript 调试器进行了调试,我注意到我们将错误 Failed to load resource: The Internet connection appears to be offline 记录到控制台,但在其他情况下(例如某些处于飞行模式的设备)WKWebView 从未出现超时或放弃,因此不会触发 WKNavigationDelegate 回调。
您可以通过使用带有任何 WKWebView iOS 应用程序的 iOS 8.2 模拟器自行重现此场景,导航到任何本地提供的 HTML 文件,然后添加带有任何远程 URL 的脚本标签,然后将您的 Internet 连接限制为“100%损失”使用苹果的Network Link Conditioner。
通过对其 WKNavigationDelegate 的错误或成功回调来强制 WkWebView 超时/返回的最佳方法是什么?
【问题讨论】:
标签: javascript ios timeout wkwebview