悲惨经历:浙政钉 iPhone 手机访问页面空白,刷新后正常显示 问题排查(安卓、手机一切正常)
现象如标题所讲,很诡异,到了客户现场先分析环境情况、问题可能出现的原因(页面是前端实习生写的,但这种诡异问题也就只能交由老同志来解决啦……)
文章目录
悲惨经历:浙政钉 iPhone 手机访问页面空白,刷新后正常显示 问题排查(安卓、手机一切正常)
现象如标题所讲,很诡异,到了客户现场先分析环境情况、问题可能出现的原因(页面是前端实习生写的,但这种诡异问题也就只能交由老同志来解决啦……)
做的看似与问题不相干的事
同事提到昨天改的 logo 在浙政钉环境下还是老样子,然后登录页的图片也出不来(我试了一下还真是……)
电脑上打开应用,发现控制台有报错,图片加载失败,想着 iPhone 手机访问空白这个问题暂时也没有头绪,顺手把这个报错解决了吧
- 图片是公司服务器上的图片,由于之前某一阶段电信安全升级?把公司 https 默认的 443 端口屏蔽掉了,导致外网无法访问图片(公司局域网是可以的,所以开发过程中一直没有发现这一问题)
想着先让这个问题上线,让同事发布了一个版本,发现线上还是那样……复制出来地址浏览器打开,发现还是这样,一看网址?咋不是我们公司 ip???
然后问了下负责政务云这块任务的同事是不是配置的地址配错了(昨天政务云资源刚申请下来,同事还在部署环境,还在调试……)
- 结果发现他直接在政务云上布了一套,配上了浙政钉,然后用户通过浙政钉进入页面(不是我让另一个同事发布的那个环境,那个环境“被停用”了)
然后让同事打包发给他,线上替换一下就接着分析问题了
- 我只是顺手改了下图片加载地址,这个东西跟我现在在研究的问题没有多大关系,所以就暂且不管啦,他发布掉就好了
问题分析
是不是代码上有 iOS 不兼容的代码引起的
我从页面加载开始梳理了一遍相关代码文件,并未发现有什么可疑的代码会引起兼容性问题
排查是不是 iOS 浙政钉环境的原因
想到将浙政钉里的应用链接复制出来,看在手机浏览器里是否有此问题(排查是不是浙政钉环境的原因),结果发现还是有这个问题,那就不是浙政钉环境的原因咯……就是 iOS 系统的兼容问题
排查解决方向
尝试错误捕获
既然上述的几种方向都没法在排查下去,看能不能通过全局 API 捕获到什么错误,从而从错误里找到突破点
vue 有全局错误捕获相关的 API(Vue.config.errorHandler
),想看看 uniapp 文档里是不是也有,看能不能看到什么报错信息
- 可惜没找到(或者说 uniapp 就没有相关 API?)
搭建临时环境(专有钉钉正好在维护,用钉钉配局域网地址调试)
屋漏偏逢连夜雨
(专有钉钉近期在维护,还没法用专有钉钉进行调试:专有钉钉是最接近浙政钉环境的)
后来同事说要不在钉钉上配置一下拿来调试
试试就试试咯,也总比每次改完发版本来的强呀……
前提:需要同一局域网下,关闭 windows 防火墙,用手机访问 ipv4 地址,能够访问通则用钉钉配置该应用到工作台,进行调试(通过钉钉打开则具备了钉钉环境,怎么配置应用台可自行百度,不作展开)
新问题:钉钉环境没有控制台可以调试怎么办?
- 思路:结合
JSON.stringfy()
将想要console.log
展示的内容序列化后用弹窗(uni.showModal(...)
)展示
环境配通后让同为 iOS 系统同样出现过问题的同事打开看看,发现没有问题……可以直接打开……
啊这……
转折
最后想在 iOS 系统下再仔细看看错误出现的过程,看能不能从现象捕捉到什么端倪,从而找到解决问题的切入点,发现本文所要解决的问题居然可以了……?
我改了什么?图片地址更正了……他就行了?
图片加载不出来也不会影响页面渲染呀,图片空着下面的内容还是会出来的呀……
- 推测会不会是因为图片是动态引入,引入的时候找不到图片,报错,影响后续代码运行了……
- 反正我安卓手机图片没出来,输入框之类的还是有的(苹果又坑我?继日期
-
连接之后的又一新坑……)
看来习惯养好点还是有好处的呀,有时候神不知鬼不觉得就把bug 解决了,或者直接跳过了
更多推荐
所有评论(0)