2017-09-11 59 views
0

我是嵌入式程序员,但现在我正在尝试分析iOS日志,以了解webview无法加载URL的问题。从日志中,我看到下面的在iOS webview中可能出现NSURLErrorCannotFindHost的情景

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:withErrordidStartProvisionalNavigation后在20毫秒内调用错误的NSURLErrorCannotFindHost。

所以,下面是我的问题:

  1. 基于didStartProvisionalNavigationdidFailProvisionalNavigation:withError之间的时间,我开始怀疑,如果 的WebView真实目的是试图解析域名。此时间 正常,默认DNS查询超时是什么?
  2. 在什么情况下会发生这种错误?

回答

0

当iOS版的WebView试图解析域名,DNS服务器返回Standard query response, Refused(经过在Wireshark的),这就是为什么网页流量报告的错误NSURLErrorCannotFindHost

显然是因为它是一个DNS错误,它在_:didStartProvisionalNavigation之后的几毫秒处调用了_:didFailProvisionalNavigation:withError回调。如果超时,可能需要更长时间。

相关问题