iOS webview 中可能出现 NSURLErrorCannotFindHost 的场景

Scenarios in which NSURLErrorCannotFindHost can occur in iOS webview

我是一名嵌入式程序员,但现在正在尝试分析 iOS 日志以解决 webview 无法加载 URL 的问题。从日志中,我看到以下内容

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. 还有什么情况会出现这个错误?

当iOSwebview尝试解析域名时,DNS服务器返回Standard query response, Refused(在wireshark中检查过)这就是为什么webview报错NSURLErrorCannotFindHost.

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