fix: resolve header overlap on Dynamic Island iPhones

- app.js 通过 wx.getSystemInfoSync 获取 statusBarHeight 存入 globalData
- 所有12个自定义导航页面的 JS 读取 statusBarHeight
- WXML 通过 style="padding-top: {{statusBarHeight + 24}}px" 动态适配
- 普通手机和灵动岛手机都能正确显示
这个提交包含在:
Guoguo
2026-04-24 22:20:10 +08:00
父节点 36e80d503a
当前提交 52cb1f72dc
修改 26 个文件,包含 69 行新增15 行删除
+3
查看文件
@@ -2,6 +2,7 @@ var ble = require('../../services/ble')
Page({
data: {
statusBarHeight: 44,
scanning: true,
scanProgress: 0,
regionData: [],
@@ -9,6 +10,8 @@ Page({
},
onLoad: function () {
var app = getApp()
this.setData({ statusBarHeight: app.globalData.statusBarHeight })
this.startScan()
},
+1 -1
查看文件
@@ -1,5 +1,5 @@
<view class="page">
<view class="page-header page-header-pink">
<view class="page-header page-header-pink" style="padding-top: {{statusBarHeight + 24}}px;">
<view class="page-header-title">自动扫描</view>
<view class="page-header-subtitle">正在识别面部...</view>
</view>
@@ -1,10 +1,13 @@
Page({
data: {
statusBarHeight: 44,
deviceId: '',
trialDays: 7
},
onLoad: function (options) {
var app = getApp()
this.setData({ statusBarHeight: app.globalData.statusBarHeight })
this.setData({ deviceId: options.device_id || '' })
},
@@ -1,5 +1,5 @@
<view class="page">
<view class="page-header page-header-green">
<view class="page-header page-header-green" style="padding-top: {{statusBarHeight + 24}}px;">
<view class="page-header-title">绑定成功</view>
<view class="page-header-subtitle">设备已成功绑定</view>
</view>
@@ -3,6 +3,7 @@ var app = getApp()
Page({
data: {
statusBarHeight: 44,
deviceId: '',
bindToken: '',
state: 'scanning',
@@ -10,6 +11,7 @@ Page({
},
onLoad: function (options) {
this.setData({ statusBarHeight: app.globalData.statusBarHeight })
this.setData({
deviceId: options.device_id || '',
bindToken: options.bind_token || ''
@@ -1,5 +1,5 @@
<view class="page">
<view class="page-header page-header-pink">
<view class="page-header page-header-pink" style="padding-top: {{statusBarHeight + 24}}px;">
<view class="page-header-title">蓝牙连接</view>
<view class="page-header-subtitle">{{state === 'scanning' ? '正在搜索设备...' : state === 'connecting' ? '正在连接设备...' : state === 'binding' ? '正在绑定...' : '连接失败'}}</view>
</view>
+6
查看文件
@@ -2,9 +2,15 @@ var app = getApp()
Page({
data: {
statusBarHeight: 44,
loading: false
},
onLoad: function () {
var app = getApp()
this.setData({ statusBarHeight: app.globalData.statusBarHeight })
},
onLogin: function () {
var self = this
self.setData({ loading: true })
+1 -1
查看文件
@@ -1,5 +1,5 @@
<view class="page">
<view class="page-header page-header-pink">
<view class="page-header page-header-pink" style="padding-top: {{statusBarHeight + 24}}px;">
<view class="page-header-title">光子美容仪</view>
<view class="page-header-subtitle">微信授权登录</view>
</view>
+6
查看文件
@@ -2,11 +2,17 @@ var http = require('../../utils/request')
Page({
data: {
statusBarHeight: 44,
scanning: false,
deviceId: '',
error: ''
},
onLoad: function () {
var app = getApp()
this.setData({ statusBarHeight: app.globalData.statusBarHeight })
},
onScan: function () {
var self = this
self.setData({ scanning: true, error: '' })
+1 -1
查看文件
@@ -1,5 +1,5 @@
<view class="page">
<view class="page-header page-header-pink">
<view class="page-header page-header-pink" style="padding-top: {{statusBarHeight + 24}}px;">
<view class="page-header-title">扫码绑定</view>
<view class="page-header-subtitle">扫描设备底部二维码</view>
</view>
@@ -2,6 +2,7 @@ var http = require('../../utils/request')
Page({
data: {
statusBarHeight: 44,
plans: [
{ plan: 'monthly', price: '¥99', desc: '约3.3元/天' },
{ plan: 'yearly', price: '¥899', desc: '省¥289' }
@@ -10,6 +11,11 @@ Page({
purchasing: false
},
onLoad: function () {
var app = getApp()
this.setData({ statusBarHeight: app.globalData.statusBarHeight })
},
onSelect: function (e) {
this.setData({ selected: e.currentTarget.dataset.plan })
},
@@ -1,5 +1,5 @@
<view class="page">
<view class="page-header page-header-gold">
<view class="page-header page-header-gold" style="padding-top: {{statusBarHeight + 24}}px;">
<view class="page-header-title">订阅服务</view>
<view class="page-header-subtitle">解锁智能模式</view>
</view>
@@ -1,5 +1,12 @@
Page({
data: {},
data: {
statusBarHeight: 44
},
onLoad: function () {
var app = getApp()
this.setData({ statusBarHeight: app.globalData.statusBarHeight })
},
onViewPlans: function () {
wx.navigateTo({ url: '/pages/subscribe-plans/subscribe-plans' })
@@ -1,5 +1,5 @@
<view class="page">
<view class="page-header page-header-pink">
<view class="page-header page-header-pink" style="padding-top: {{statusBarHeight + 24}}px;">
<view class="page-header-title">护理设置</view>
<view class="page-header-subtitle">试用期已结束</view>
</view>
@@ -1,10 +1,13 @@
Page({
data: {
statusBarHeight: 44,
planName: '年卡会员',
expiryDate: ''
},
onLoad: function () {
var app = getApp()
this.setData({ statusBarHeight: app.globalData.statusBarHeight })
var now = new Date()
now.setFullYear(now.getFullYear() + 1)
var y = now.getFullYear()
@@ -1,5 +1,5 @@
<view class="page">
<view class="page-header page-header-green">
<view class="page-header page-header-green" style="padding-top: {{statusBarHeight + 24}}px;">
<view class="page-header-title">订阅成功</view>
<view class="page-header-subtitle">欢迎使用智能模式</view>
</view>
+3
查看文件
@@ -2,6 +2,7 @@ var ble = require('../../services/ble')
Page({
data: {
statusBarHeight: 44,
regions: 0,
wavelength: 2,
duration: 600000,
@@ -16,6 +17,8 @@ Page({
},
onLoad: function (options) {
var app = getApp()
this.setData({ statusBarHeight: app.globalData.statusBarHeight })
this.setData({
regions: parseInt(options.regions) || 0x7F,
wavelength: parseInt(options.wavelength) || 2,
+1 -1
查看文件
@@ -1,5 +1,5 @@
<view class="page">
<view class="page-header page-header-blue">
<view class="page-header page-header-blue" style="padding-top: {{statusBarHeight + 24}}px;">
<view class="page-header-title">护理中</view>
<view class="page-header-subtitle">正在护理...</view>
</view>
@@ -4,6 +4,7 @@ var app = getApp()
Page({
data: {
statusBarHeight: 44,
sessionId: '',
regions: 0,
duration: 0,
@@ -15,6 +16,7 @@ Page({
},
onLoad: function (options) {
this.setData({ statusBarHeight: app.globalData.statusBarHeight })
var durationMs = parseInt(options.duration) || 0
var mins = Math.floor(durationMs / 60000)
var secs = Math.floor((durationMs % 60000) / 1000)
@@ -1,5 +1,5 @@
<view class="page">
<view class="page-header page-header-green">
<view class="page-header page-header-green" style="padding-top: {{statusBarHeight + 24}}px;">
<view class="page-header-title">护理完成</view>
<view class="page-header-subtitle">本次护理已结束</view>
</view>
@@ -2,6 +2,7 @@ var ble = require('../../services/ble')
Page({
data: {
statusBarHeight: 44,
regions: [
{ name: '左脸颊', mask: 0x01, checked: true },
{ name: '右脸颊', mask: 0x02, checked: true },
@@ -17,6 +18,8 @@ Page({
},
onLoad: function () {
var app = getApp()
this.setData({ statusBarHeight: app.globalData.statusBarHeight })
this.checkSubscription()
},
@@ -1,5 +1,5 @@
<view class="page">
<view class="page-header page-header-pink">
<view class="page-header page-header-pink" style="padding-top: {{statusBarHeight + 24}}px;">
<view class="page-header-title">护理设置</view>
<view class="page-header-subtitle">选择模式和区域</view>
</view>
@@ -2,11 +2,17 @@ var ble = require('../../services/ble')
Page({
data: {
statusBarHeight: 44,
checking: false,
result: null,
error: ''
},
onLoad: function () {
var app = getApp()
this.setData({ statusBarHeight: app.globalData.statusBarHeight })
},
onShow: function () {
this.checkWearing()
},
+1 -1
查看文件
@@ -1,5 +1,5 @@
<view class="page">
<view class="page-header page-header-pink">
<view class="page-header page-header-pink" style="padding-top: {{statusBarHeight + 24}}px;">
<view class="page-header-title">确认佩戴</view>
<view class="page-header-subtitle">请确保面罩贴合面部</view>
</view>