前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >webview 中的NSURLErrorDomain Code=-999处理

webview 中的NSURLErrorDomain Code=-999处理

作者头像
freesan44
发布2019-03-05 11:25:12
3K0
发布2019-03-05 11:25:12
举报
文章被收录于专栏:freesan44freesan44

摘要:替换UIWebview为WKWebview时,遇到一个怪异的现象,webview的二级界面回到一级界面时,一级重新渲染时,会直接抛错;

分析问题:

因为,我们的app支持iOS8以上,考虑到UIWebview的内存使用要比WKWebview的高、加载速度慢,同时,对WKWebview的高达60fps的滚动刷新率以及内置手势充满了羡慕,所以脑袋一抽,撸起袖子直接替换掉原来的UIWebview;这个过程中出现了这个莫名其妙的问题(进入一个H5加载的界面,点击内容,跳转到另外一个H5界面,然后,点击H5的导航返回按钮,上重新加载上一个界面,直接告知加载失败); 加断点,打印出来的error信息是:

代码语言:javascript
复制
Error Domain=NSURLErrorDomain Code=-999 "(null)" UserInfo={NSErrorFailingURLKey=https://xxx.xx.xx/me.jsp, _WKRecoveryAttempterErrorKey=, NSErrorFailingURLStringKey=https://xxx.xx.xx/me.jsp}

然后,Google了一圈没有找到合理的解释,于是去查看NSURLError中-999代表的是什么:

图片.png

图片.png

-999 就是 NSURLErrorCancelled,它代表请求被取消的意思

问题原因:

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

解决方案:

在失败的方法里:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.01.29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 分析问题:
  • 问题原因:
  • 解决方案:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档