如何通过小程序调整不同手机机型底部导航的间距?

更新于
2026-10-02 20:02:13
2阅读来源:SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计484个文字,预计阅读时间需要2分钟。

需求:需要iponeX及以上机型,手机底部有宽度,自定义的导航栏会被遮挡,需要判断手机型号,做兼容性设置。

解决方案:在app.js中添加如下代码:

javascript/** * 当小程序初始化完成后,会触发onLaunch全局事件(全局只触发一次) */App({ onLaunch: function () { // 获取系统信息 const systemInfo=wx.getSystemInfoSync();

// 判断手机型号 if (systemInfo.model.startsWith('iPhone X') || systemInfo.model.startsWith('iPhone Xs') || systemInfo.model.startsWith('iPhone XR') || systemInfo.model.startsWith('iPhone 11') || systemInfo.model.startsWith('iPhone 11 Pro')) { // 是iPhone X系列或更高版本,执行兼容性设置 // ... 兼容性设置代码 } }});

需求:

iponeX 以上机型,手机底部有弧度,自己写的导航栏会被遮住, 需要判断手机机型,做兼容设置.

解决:

//app.js App({ /** * 当小程序初始化完成时,会触发 onLaunch(全局只触发一次) */ onLaunch: function() { var that = this; //获取手机型号 wx.getSystemInfo({ success(res) { const model = res.model; const modelInclude = ["iPhone X", 'iPhone XR', "iPhone XS", "iPhone XS MAX"]; var flag = false;//是否X以上机型 for (let i = 0; i < modelInclude.length;i ++){ //模糊判断是否是modelInclude 中的机型,因为真机上测试显示的model机型信息比较长无法一一精确匹配 if (model.indexOf(modelInclude[i]) != -1){ flag = true } } if (flag) { that.BOTTOM_DISTANCE = 50; } } }) }, /** * 当小程序启动,或从后台进入前台显示,会触发 onShow */ onShow: function(options) { }, /** * 当小程序从前台进入后台,会触发 onHide */ onHide: function() { }, /** * 当小程序发生脚本错误,或者 api 调用失败时,会触发 onError 并带上错误信息 */ onError: function(msg) { }, BOTTOM_DISTANCE:0,//iponeX底部需要抬高的距离 })

页面js

const app = getApp(); Page({ /** * 页面的初始数据 */ data: { bottom: app.BOTTOM_DISTANCE//将app实例中的BOTTOM_DISTANCE转化为页面的data,即可在xml上使用 }, /** * 生命周期函数--监听页面加载 */ onLoad: function(options) { }, })

然后设置导航底部padding距离即可;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自由互联。

本文共计484个文字,预计阅读时间需要2分钟。

需求:需要iponeX及以上机型,手机底部有宽度,自定义的导航栏会被遮挡,需要判断手机型号,做兼容性设置。

解决方案:在app.js中添加如下代码:

javascript/** * 当小程序初始化完成后,会触发onLaunch全局事件(全局只触发一次) */App({ onLaunch: function () { // 获取系统信息 const systemInfo=wx.getSystemInfoSync();

// 判断手机型号 if (systemInfo.model.startsWith('iPhone X') || systemInfo.model.startsWith('iPhone Xs') || systemInfo.model.startsWith('iPhone XR') || systemInfo.model.startsWith('iPhone 11') || systemInfo.model.startsWith('iPhone 11 Pro')) { // 是iPhone X系列或更高版本,执行兼容性设置 // ... 兼容性设置代码 } }});

需求:

iponeX 以上机型,手机底部有弧度,自己写的导航栏会被遮住, 需要判断手机机型,做兼容设置.

解决:

//app.js App({ /** * 当小程序初始化完成时,会触发 onLaunch(全局只触发一次) */ onLaunch: function() { var that = this; //获取手机型号 wx.getSystemInfo({ success(res) { const model = res.model; const modelInclude = ["iPhone X", 'iPhone XR', "iPhone XS", "iPhone XS MAX"]; var flag = false;//是否X以上机型 for (let i = 0; i < modelInclude.length;i ++){ //模糊判断是否是modelInclude 中的机型,因为真机上测试显示的model机型信息比较长无法一一精确匹配 if (model.indexOf(modelInclude[i]) != -1){ flag = true } } if (flag) { that.BOTTOM_DISTANCE = 50; } } }) }, /** * 当小程序启动,或从后台进入前台显示,会触发 onShow */ onShow: function(options) { }, /** * 当小程序从前台进入后台,会触发 onHide */ onHide: function() { }, /** * 当小程序发生脚本错误,或者 api 调用失败时,会触发 onError 并带上错误信息 */ onError: function(msg) { }, BOTTOM_DISTANCE:0,//iponeX底部需要抬高的距离 })

页面js

const app = getApp(); Page({ /** * 页面的初始数据 */ data: { bottom: app.BOTTOM_DISTANCE//将app实例中的BOTTOM_DISTANCE转化为页面的data,即可在xml上使用 }, /** * 生命周期函数--监听页面加载 */ onLoad: function(options) { }, })

然后设置导航底部padding距离即可;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自由互联。