微信小程序部分安卓手机获取safeArea.top异常

最近开发微信小程序,使用官方的自定义导航组件navigation-bar,在使用过程中,发现部分安卓手机头部样式有些异常,详细查看代码之后,初步判断是safeArea.top获取异常,调试之后,确实safeArea.top等于0,理论上这个值应该是40左右,所以记录一下,避免大家踩坑!解决方案会放在最后。以下是发生异常的条件:

手机型号及系统版本
红米Turbo 3
微信版本
8.0.50
正常样式
在这里插入图片描述

异常样式
在这里插入图片描述

此操作必现异常
在这里插入图片描述

目前较多的解决方式有两种:

一是写死高度,这个高度大概是88px左右,适用于大多数手机。

二是使用statusBarHeight代替safeArea.top,相比之下,推荐此方法。
代码如下:

   if( isAndroid ) {
       if( (res.safeArea.top == 0 || res.safeArea.top == undefined) && res.statusBarHeight > 0 ) {
           res.safeArea.top = res.statusBarHeight;
       } else {
           res.safeArea.top = 40; // 这个只是为了以防万一,暂时没有此情况
       }
   }

效果体验,请扫以下小程序码

请添加图片描述

– end –

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值