我是嵌入式程序员,但是现在正在尝试分析WebView无法加载URL的问题的iOS日志。从日志中,我看到以下
404230 (_:didStartProvisionalNavigation:)::Entry
404230 (_:didStartProvisionalNavigation:)::Exit
404250 (_:didFailProvisionalNavigation:withError:)::Entry
404250 (_:didFailProvisionalNavigation:withError:)::server with the specified hostname could not be found
404250 (_:didFailProvisionalNavigation:withError:)::Exit
观察到didFailProvisionalNavigation:withError
在didStartProvisionalNavigation
之后的20毫秒内被称为Nsurlerrorcannotfindhost。
所以以下是我的问题:
- 基于
didStartProvisionalNavigation
和didFailProvisionalNavigation:withError
,我开始怀疑是否是否WebView实际上试图解决域名。这是时机正常,默认DNS查找超时是什么? - 在其他情况下,此错误还会发生?
当iOS WebView尝试解析域名时,DNS服务器返回Standard query response, Refused
(在Wireshark中检查了),这就是为什么WebView报告错误NSURLErrorCannotFindHost
。
显然,由于它是DNS错误,因此在_:didStartProvisionalNavigation
之后调用了几毫秒的回调_:didFailProvisionalNavigation:withError
。如果超时,可能需要更长的时间。