前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小程序对IPhone全面屏手机底部黑线的安全区域处理

小程序对IPhone全面屏手机底部黑线的安全区域处理

作者头像
青年码农
发布2020-11-19 15:12:51
1.7K0
发布2020-11-19 15:12:51
举报
文章被收录于专栏:青年码农青年码农

今天在编写小程序页面时发现,在iphoneX真机预览时,底部button会被手机底部黑线盖住一部分,

对于我这种强迫症来说,简直不能忍。

首先说下手机的安全区域

安全区域指的是一个可视窗口范围,处于安全区域的内容不受圆角(corners)、齐刘海(sensor housing)、小黑条(Home Indicator)的影响。

我用的手机是iphone X ,显示效果如上,为了美观和易用性,我们对手机显示进行适配

第一种方案 CSS3中的constant、env函数

代码语言:javascript
复制
page {
  padding-bottom: constant(safe-area-inset-bottom);
  padding-bottom: env(safe-area-inset-bottom);
}

两句代码就能解决ios底部安全距离问题

第二种方案 动态获取手机型号,给view加margin-bottom

1.app.js中定义全部变量

代码语言:javascript
复制
 globalData: { 
    Modelmes: null
 },

2.onLaunch获取手机型号等信息

代码语言:javascript
复制
 onLaunch(options) {
  wx.getSystemInfo({
    success: (res) => {
      //将机型存入到本地缓存 以免后期其他业务逻辑需要使用
      wx.setStorageSync('Modelmes', res.model)
      if (res.model === 'iPhone X' || 'iPhone XR' || 'iPhone XS Max' || 'iPhone 11' || 'iPhone 11 Pro' || 'iPhone 11 Pro Max'){
        this.globalData.Modelmes = true;
      }else{
        this.globalData.Modelmes = false;
      }
    }
  })

3.需要适配的页面调用

代码语言:javascript
复制
var app = getApp();
let { Modelmes } = app.globalData;
this.setData({ Modelmes });

最外层增加margin-bottom

代码语言:javascript
复制
<view  style="margin-bottom:{{Modelmes?'68rpx':'0'}}">

最终显示效果

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-11-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 青年码农 微信公众号,前往查看

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

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档