You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何触发WKWebView的WKNavigationDelegate中webView:didFail:withError方法?

如何触发WKWebView的webView(_:didFail:withError:)方法

首先明确两个错误回调的核心差异:

  • webView(_:didFailProvisionalNavigation:withError:):导航尚未完成启动时触发错误(比如无效URL、DNS解析失败、证书不被信任),这是你用无效URL测试时触发的场景。
  • webView(_:didFail:withError:):导航已经启动,页面加载过程中出现错误时触发。

触发该方法的具体场景:

  • 加载有效URL中途断网:先让WebView开始加载一个可正常访问的URL(比如https://example.com),在页面开始加载但尚未完成时,断开设备的网络连接。此时WebKit因无法继续获取资源,会触发didFail回调。
  • 加载存在但无法解析的本地文件:用webView.loadFileURL()加载后缀为.html但内容是完全无法被WebKit解析的二进制文件,或者加载权限受限的文件(无读取权限),且文件已被部分读取后出错。
  • 服务器返回无效内容:搭建测试服务器,返回200状态码但内容是损坏的HTML/二进制数据(比如截断的图片、乱码文本),WebKit尝试解析这些内容时会触发didFail。

你的之前尝试未生效的原因:

  • 无效URL属于导航启动前的错误,直接被拦截在didFailProvisionalNavigation阶段。
  • WebKit对HTML有极强的容错性,即使格式错误,也会自动修复并渲染,不会触发错误回调。

内容的提问来源于stack exchange,提问作者Nick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 18:22:04