现象
公司的一个 H5 站点在头条 App 里白屏,在手百、QQ 浏览器、Safari、Chrome 等都正常
排查思路
1. 引入 vConsole
在移动端调试
因为移动端没有 PC 里那样方便的调试工具可以清晰的查看 log 和 network 之类有用的信息,只能借助 vConsole
、eruda
这类移动端调试工具,可以在移动端实现类似 PC 浏览器里的调试功能
2. 从大范围到小范围的 log
因为移动端无法 debugger,只能逐步的 log 去定位问题。我们采用的是 vue 技术栈,可以从 main.js 到路由组件的生命周期里去添加 log,通过这种方式定位到了在一个接口请求的方法之后的代码都不会请求,奇怪的是也没有抛出任何异常,并且在 vConsole
里的 network 下找到了该请求也是正常的响应,如下代码:
try {console.log('start fetch')const res = await FetchXXX();console.log(res)
} catch (e) {console.log(e)
}
只打印出了start fetch
,请求的结果和捕获的异常里都没有打印出东西,至此又缩小了排查的范围,一定是请求的响应处理部分出现问题了。
因为我们的请求接口方法是基于 axios 统一封装的,本以为是封装的哪个环节有不兼容头条的代码,通过不断的 log,发现 request inter