小程序刘海屏适配及兼容全面屏底部横条(indicator)

2019-12-10 17:44:40 浏览数 (1)

小程序适配iPhone刘海屏及indicator的方法

本文适用于未自定义导航&吸底按钮(底部按钮fixed)的情况

# 判断设备

判断方法->wx.getSystemInfo(OBJECT)返回的信息

  • model是否包含 iPhone X
  • screenHeight是否等于 812

# 代码

主要js代码

代码语言:javascript复制
//app.js
App({
  // 全局数据
  globalData: {
    isIPX: false
  },
  onLaunch: function (options) {
    // 判断设备是否为 iPhone X
    this.checkIsIPhoneX()
  },
  checkIsIPhoneX: function() {
    const self = this
    wx.getSystemInfo({
      success: function (res) {
        // 根据 model 进行判断
        if (res.model.search('iPhone X') != -1) {
          self.globalData.isIPX = true
        }
        // 根据 screenHeight 进行判断
        // if (res.screenHeight == 812) {
        //   self.globalData.isIPX = true
        // }
      }
    })
  }
})

//页面js
const app = getApp()

Page({
  data: {
    // 页面其他数据...
    isIPX: app.globalData.isIPX,
  },
  ...
})

样式 可以写在全局样式文件app.wxss中

代码语言:javascript复制
.bottom-btn {
  position: fixed;
  bottom: 0;
  width: 100%;
  height: 120rpx;
  line-height: 120rpx;
  background: #fff;
  text-align: center;
  box-shadow: 0 -4rpx 4rpx 0 rgba(0, 0, 0, 0.05);
}

.bottom-btn-ipx {
  padding-bottom: 68rpx;
}

页面wxml

代码语言:javascript复制
<view class="bottom-btn {{isIPX ? 'bottom-btn-ipx' : ''}}">
    <view class="join-course" bindtap="joinCourse" data-curriculum_id="{{periodical_id}}">
        {{text}}
    </view>
</view>

# 参考资料

iPhone手机设备内部代号参考 deviceMode

0 人点赞