前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >问题记录

问题记录

原创
作者头像
莫空9081
修改2021-08-30 14:21:00
1.3K0
修改2021-08-30 14:21:00
举报
文章被收录于专栏:iOS 备忘录

背景

昨天,遇到三个神奇的问题,这里记录一下

  • SDWebImage图片加载之后黑色的问题,安卓显示正常
  • WKWebview 加载 vnd.ms-excel 文件,加载xlsx 文件,预览不了
  • 用户反馈拍照唤起相机黑屏

<!--more-->

图片黑色的问题

测试反馈的是,拍摄了一张图片,上传之后,安卓可以加载出来,iOS显示是黑色,其他图片正常;

最开始笔者以为是 SDWebImage加载这张图片失败了,断点调试后,发现图片加载成功并没有失败,但是显示是黑色。然后笔者取到照片的链接在 Chrome 中打开,发现图片是可以显示的;在 Safari 中打开,是黑色的;且从 Chrome 中右键保存到本地,预览中打开也是黑色。这张图片的在 Mac OS 和 iOS 中渲染都是黑色的。

WKWebview加载xlsx 文件,预览不了的问题

笔者这边的情况是,打开了一个网页,网页中的有个按钮,点击之后的链接,正常在电脑浏览器上打开是下载,在 iOS 的 WKWebview中打开是预览。

笔者最开始以为是 WKWebview 加载 xlsx 文件的问题,查了很多方法尝试后均失败。

出现的问题是,其他 .xlsx 文件可以正常预览的情况下,有个.xlsx 文件加载失败怎么都预览不了,应该和WKWebview的加载不关,最后通过对比后接口发现,返回的 Content-Type 不同,可以加载的是applicaiton/octet-stream,加载失败的是application/vnd.ms-excel,接口修改后可正常加载。

用户反馈拍照唤起相机黑屏

用户反馈打开相机界面,显示黑色,相机加载失败,手机为 iPhone 7P。

起初以为是用户权限没开,但是用户验证后发现已经开启。然后排查代码,没有发现有什么问题,再次询问用户,用户反馈,昨天还正常使用,今天出现加载失败。于是确认是否有更新 APP,是否有升级手机系统,都没有。

再次排查代码,未发现有涉及到版本判断的地方。于是怀疑是用户摄像头出问题了,询问用户使用企业微信唤起扫一扫界面是否正常,用户反馈正常。

陷入了僵局,最后用户反馈打开系统相机也是黑屏,但是把缩放调到2倍就正常了。于是怀疑是摄像头坏了一颗, 默认是使用正常的摄像头拍摄,当拍远景或者缩放调到2倍时使用了广角的镜头,用户的应该是正常摄像头坏掉了,而另一颗远景的是好的。

但是为什么企业微信的是好的?再次查看代码后,发现笔者的项目中AVCaptureDeviceDiscoverySessionDeviceTypes只设置了一个值AVCaptureDeviceTypeBuiltInWideAngleCamera,故而只取到了正常的摄像头,未取到广角镜头,修改为如下时,即解决

代码语言:txt
复制
        AVCaptureDeviceDiscoverySession * deviceSession = [AVCaptureDeviceDiscoverySession discoverySessionWithDeviceTypes:@[AVCaptureDeviceTypeBuiltInWideAngleCamera, AVCaptureDeviceTypeBuiltInTelephotoCamera, AVCaptureDeviceTypeBuiltInDualCamera, AVCaptureDeviceTypeBuiltInTrueDepthCamera, AVCaptureDeviceTypeBuiltInDuoCamera] mediaType:AVMediaTypeVideo position:position];

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
    • 图片黑色的问题
      • WKWebview加载xlsx 文件,预览不了的问题
        • 用户反馈拍照唤起相机黑屏
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档