NSURLErrorDomain Code=-999

简介:

前言

今天有一个线上bug,是分配给提供H5的团队的,但是后台查不出来原因。于是让前端iOS帮忙查一查原因。

今天,交给我来帮忙查原因,但是问题在网络好的状态下并不必现,很难去定位问题的根本原因。最后只能到测试旁边连接测试专用的慢网环境,然后才能必现。

刚进入界面时是加载一个H5页面,当点击H5页面上的某个按钮的时候,会通过webview拦截到scheme,然后去走接口请求数据,得到数据后再加载H5页面。此时,走了webview加载失败的回调。

加断点,打印出来的error信息是:

然后,笔者进入NSURLError.h中查看-999代表什么对应的key是什么:

找到了吧!!!NSURLErrorCancelled就是-999,它代表请求被取消的意思。

根本原因

出现NSURLErrorDomain Code=-999的根本原因是什么呢?其实就是因为webview在之前的请求还没有加载完成,下一个请求发起了,此时webview会取消掉之前的请求,因此会回调到失败这里。

因此,在处理Webview的加载失败的回调时,要注意拦截掉被取消的请求。

解决方案

在webview加载失败时,添加如下代码来判断:

最后

如果大家遇到同样的问题,请不要着急,这个bug不一定是后台的,也不一定是前端的,因此彼此应该要互相配合,共同找到问题的根本原因。

由于安卓也有同样的问题,但是复现率没有iOS的高,在笔者找出根本原因后,H5人员与安卓端描述,希望安卓端也能统一改,但是描述不清楚,导致安卓这边有意见。于是叫笔者过来帮忙解释原因,讲了半天,安卓的leader说不可能~不会的~不应该~不影响~

发现跟安卓沟通要是不懂一点安卓,真心容易被人忽悠。当然,最后还是要改的,事实都摆在面前了,还能有什么借口可以逃避!

希望大家在遇到同样的问题时,淡定!沟通协作共同解决问题。

目录
相关文章
|
iOS开发
iOS Error Domain=NSURLErrorDomain Code=-999
iOS Error Domain=NSURLErrorDomain Code=-999
518 0
element-ui 里 el-popover 位置发生偏移
element-ui 里 el-popover 位置发生偏移
3028 0
|
数据可视化 Linux iOS开发
(2024年)Typora-最新版安装(1.8.10)
Typora是一款高效、简洁且功能强大的Markdown编辑器,支持Windows、MacOS及Linux系统,并实现可视化编辑,同一窗口实时呈现编辑效果。相较于传统Markdown编辑器,Typora的界面更为直观易用,极大地提升了编辑效率。用户可在官网(https://typoraio.cn/)下载安装包进行安装。
1593 5
|
Linux 网络安全 数据安全/隐私保护
Jetson 学习笔记(十三):SSH远程登录控制(终端控制和图形界面)-成功通过
这篇文章介绍了如何通过SSH命令行和VNC图形界面远程登录和控制NVIDIA Jetson Nano设备。
3629 0
Jetson 学习笔记(十三):SSH远程登录控制(终端控制和图形界面)-成功通过
|
前端开发 JavaScript Go
Go 实战|使用 Wails 构建轻量级的桌面应用:仿微信登录界面 Demo
Wails 框架提供了一种简洁而强大的方式,让开发者能够利用 Go 的性能优势和 Web 前端的灵活性,从而能够使用更高效、更轻量级的方法来构建跨平台的桌面应用。本文探讨 Wails 框架的使用,从搭建环境到开发,再到最终的构建打包。
1638 1
Go 实战|使用 Wails 构建轻量级的桌面应用:仿微信登录界面 Demo
|
应用服务中间件 网络安全 nginx
docker 搭建 最新版本的 gitlab,使用HTTPS访问,以及gitlab的基础使用讲解
docker 搭建 最新版本的 gitlab,使用HTTPS访问,以及gitlab的基础使用讲解
|
开发工具 iOS开发 MacOS
【Mac_mistake】app不能安装在未命名需要OSv11.13或更高版本
【Mac_mistake】app不能安装在未命名需要OSv11.13或更高版本
2846 0
Showing Recent Messages Command CodeSign failed with a nonzero exit code
Showing Recent Messages Command CodeSign failed with a nonzero exit code
754 0