admin管理员组

文章数量:1655506

个人用的笔记,用于解决各种各样的bug,记录了问题和怎么解决bug的思路过程

安卓手机低版本打开H5一片空白

问题

就是在DGT工作的时候用的前端框架,在低版本安卓手机通过APP打开的时候,会显示一片空白,安卓系统是6.0.1.

解决思路

首先对比下本手机的其他功能,能不能打开。发现,是可以打开的,就意味着本项目的某些设置或许和之前的不一样。
然后对比项目的不同之处,写法之类的。发现,本项目多了一个vue-vconsole-devtools库,是用于一个vconsole的增强库,但是写法涉及到ES6。又因为ES6在安卓低版本手机是不支持的,所以问题就产生了。直接把这个包给去掉,把相应代码设置给去掉,就可以了。

van-toast没办法显示出来

问题

用的是vant这个组件,首先是一个同事的生产环境,点一个按钮,点了没有任何反应,没报错也没跳转。然后用测试环境一看,点击之后,有请求,请求是报错的,照理来说,有报错提示才对的,这里没有,于是乎就对vant-toast进行了定位

/**
 * 判断结果result_code是否为0
 * @param res 请求相应
 * @param showFlag 默认显示错误,但是如果是IOS 16 在快速跳时,会直接请求中断
 * @returns {boolean}
 */
export function showError (res,showFlag = true) {
  if (res?.result_code == 0 ) {
    return false
  }
  if (showFlag === true){
    Toast.fail('[' + (res.result_code || -1) + ']' + (res.message || '连接服务器异常'))
  }
  return true
}

首先我看一下是不是只有这个toast不行,还是所有的都不行,发现,是所有的toast都不行。我都惊呆了。
从首页加载过来的第一个toast.loading,这个显示完成之后,再也没有得显示了。不知道怎么回事,去官网看,去github仓库搜issue,虽然issue有同样的问题,但是没有解决。
然后看元素,可以看到vant-toast元素还是在的

    <div class="van-toast van-toast--middle van-toast--loading" style="z-index: 2002; display: none;">
      <div class="van-loading van-loading--circular van-toast__loading"><span
        class="van-loading__spinner van-loading__spinner--circular">
        <svg viewBox="25 25 50 50" class="van-loading__circular"><circle cx="50" cy="50" r="20"                                                                                                fill="none"></circle></svg></span>
      </div>
      <div class="van-toast__text">正在处理,请稍等</div>
    </div>

可以看到,这个的display:none,也就是说,这个元素是在的,只不过是没办法将display:none给去掉。
所以就想是不是这个组件本身的问题
去官网看把,然后发现有个设置

!!莫非就是这个?!允许多个toast存在。
然后一设置

Toast.allowMultiple(true)

toast就显示成功了。所以说,就是toast有多个,实在是加载不出来了。
弄出来之后就可以看到有多个toast共存了。
哭了,这个bug弄了我好久,终于

本文标签: Bug