微信小程序适配iphoneX的实现方法


Posted in Javascript onSeptember 18, 2018

一、 安全区域(safe area)

与iPhone6/6s/7/8相比,iPhone X 无论是在屏幕尺寸、分辨率、甚至是形状上都发生了较大的改变,下面以iPhone 8作为参照物,先看看iPhone X尺寸上的变化:

微信小程序适配iphoneX的实现方法

苹果对于 iPhone X 的设计布局意见如下:

微信小程序适配iphoneX的实现方法

核心内容应该处于 Safe area 确保不会被设备圆角(corners),传感器外壳(sensor housing,齐刘海) 以及底部的 Home Indicator 遮挡。也就是说 我们设计显示的内容应该尽可能的在安全区域内;

二、h5页面适配

1、viewport-fit的meta标签作为适配方案;viewport-fit的默认值是auto。

viewport-fit取值如下:

auto 默认:viewprot-fit:contain;页面内容显示在safe area内
  cover viewport-fit:cover,页面内容充满屏幕

2、css constant()函数 与safe-area-inset-top & safe-area-inset-left & safe-area-inset-right & safe-area-inset-bottom的介绍.

当我们设置viewport-fit:contain,也就是默认的时候时;设置safe-area-inset-left, safe-area-inset-right, safe-area-inset-top和 safe-area-inset-bottom等参数时不起作用的。当我们设置viewport-fit:cover时:设置如下

body {

  padding-top: constant(safe-area-inset-top);  //为导航栏+状态栏的高度 88px      

  padding-left: constant(safe-area-inset-left);  //如果未竖屏时为0        

  padding-right: constant(safe-area-inset-right); //如果未竖屏时为0        

  padding-bottom: constant(safe-area-inset-bottom);//为底下圆弧的高度 34px    

}

三、小程序适配

viewport-fit的适配方案不适合小程序。目前也没有看到小程序有对iPhone X等异形屏有特殊的接口或字段。小程序本身的底部tab栏对iPhone X的适配也只是简单的加了一个白色底栏,提高了原有tab栏的位置。我们只能通过 wx.getSystemInfo 接口取获取设备信息,该接口使用方法如下:

wx.getSystemInfo({

   success: function (res) {

      if (res.model == 'iphonrx') {

         this.setData({

            isIphoneX: true

         })

      }

   }

}) 

其中 model 便是设备的型号等信息,如果 model 值为iphonerx ,便可认为该设备为iPhone X,我们在入口文件 app.js 中去进行检测,然后在全局增加一个 isIphoneX 字段。

wxml部分:

<view class="button-group {{isIphoneX ?'fix-iphonex-button':''}}">这是一个吸底按钮区域</view>

wxss部分:

.fix-iphonex-button {
  bottom:68rpx!important;
}

.fix-iphonex-button::after {
  content: ' ';
  position: fixed;
  bottom: 0!important;
  height: 68rpx!important;
  width: 100%;
  background: #fff;
}

至于为什么采用 68rpx,

微信小程序适配iphoneX的实现方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript 同时提交多个Web表单的方法
Feb 19 Javascript
JavaScript RegExp方法获取地址栏参数(面向对象)
Mar 10 Javascript
关于javascript function对象那些迷惑分析
Oct 24 Javascript
jQuery中delegate()方法用法实例
Jan 19 Javascript
transport.js和jquery冲突问题的解决方法
Feb 10 Javascript
Node.js项目中调用JavaScript的EJS模板库的方法
Mar 11 Javascript
JavaScript每天必学之基础知识
Sep 17 Javascript
微信小程序实现验证码获取倒计时效果
Feb 08 Javascript
vue v-model实现自定义样式多选与单选功能
Jul 05 Javascript
Vue项目报错:Uncaught SyntaxError: Unexpected token
Nov 10 Javascript
React中使用Vditor自定义图片详解
Dec 25 Javascript
three.js中多线程的使用及性能测试详解
Jan 07 Javascript
小程序兼容安卓和IOS数据处理问题及坑
Sep 18 #Javascript
解决vue attr取不到属性值的问题
Sep 18 #Javascript
vue动画打包后失效问题的解决方法
Sep 18 #Javascript
vue自定义全局共用函数详解
Sep 18 #Javascript
vue-自定义组件传值的实例讲解
Sep 18 #Javascript
vuex actions传递多参数的处理方法
Sep 18 #Javascript
微信小程序搭建(mpvue+mpvue-weui+fly.js)的详细步骤
Sep 18 #Javascript
You might like
用Div仿showModalDialog模式菜单的效果的代码
2007/03/05 Javascript
某人初学javascript的时候写的学习笔记
2010/12/30 Javascript
JavaScript 注册事件代码
2011/01/27 Javascript
ie下jquery.getJSON的缓存问题的处理方法
2013/03/29 Javascript
c#程序员对TypeScript的认识过程
2015/06/19 Javascript
纯javascript响应式树形菜单效果
2015/11/10 Javascript
js实现select二级联动下拉菜单
2020/04/17 Javascript
js中获取键盘事件的简单实现方法
2016/10/10 Javascript
JS中的phototype详解
2017/02/04 Javascript
详解vue 配合vue-resource调用接口获取数据
2017/06/22 Javascript
jQuery 实现鼠标画框并对框内数据选中的实例代码
2017/08/29 jQuery
VueJs监听window.resize方法示例
2018/01/17 Javascript
js中apply和Math.max()函数的问题及区别介绍
2018/03/27 Javascript
详解微信小程序回到顶部的两种方式
2019/05/09 Javascript
JavaScript箭头函数中的this详解
2019/06/19 Javascript
微信小程序云函数使用mysql数据库过程详解
2019/08/07 Javascript
vue实现登录拦截
2020/06/29 Javascript
python中lambda函数 list comprehension 和 zip函数使用指南
2014/09/28 Python
详解python进行mp3格式判断
2016/12/23 Python
python3利用Dlib19.7实现人脸68个特征点标定
2018/02/26 Python
利用Django模版生成树状结构实例代码
2019/05/19 Python
python requests库爬取豆瓣电视剧数据并保存到本地详解
2019/08/10 Python
python颜色随机生成器的实例代码
2020/01/10 Python
TensorFlow打印输出tensor的值
2020/04/19 Python
利用CSS3实现自定义滚动条代码分享
2016/08/18 HTML / CSS
HTML5 使用 sessionStorage 进行页面传值的方法
2018/07/02 HTML / CSS
webView加载html图片遇到的问题解决
2019/10/08 HTML / CSS
Java 中访问数据库的步骤?Statement 和PreparedStatement 之间的区别?
2012/06/05 面试题
令人啧啧称赞的经理推荐信
2013/11/07 职场文书
食堂个人先进事迹
2014/01/22 职场文书
党员四风问题对照检查材料思想汇报
2014/09/16 职场文书
导游词之苏州盘门景区
2019/11/12 职场文书
MySQL如何构建数据表索引
2021/05/13 MySQL
简单总结SpringMVC拦截器的使用方法
2021/06/28 Java/Android
Oracle 多表查询基本语法实例
2022/04/18 Oracle
MySQL的意向共享锁、意向排它锁和死锁
2022/07/15 MySQL