微信小程序适配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 相关文章推荐
基于jQuery的简单九宫格实现代码
Aug 09 Javascript
JavaScript 参数中的数组展开 [译]
Sep 21 Javascript
什么是Node.js?Node.js详细介绍
Jun 01 Javascript
js实现图片漂浮效果的方法
Mar 02 Javascript
javascript十六进制及二进制转化的方法
May 06 Javascript
jQuery图片轮播滚动切换代码分享
Apr 20 Javascript
jquery实现右侧栏菜单选择操作
Mar 04 Javascript
js 自带的 map() 方法全面了解
Aug 16 Javascript
Javascript使用function创建类的两种方法(推荐)
Nov 19 Javascript
HTML5 js实现拖拉上传文件功能
Nov 20 Javascript
详解Vue 实例中的生命周期钩子
Mar 21 Javascript
ES6 javascript中Class类继承用法实例详解
Oct 30 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
点评山进PR-D3L三波段收音机
2021/03/02 无线电
用PHP 4.2书写安全的脚本
2006/10/09 PHP
探讨多键值cookie(php中cookie存取数组)的详解
2013/06/06 PHP
PHP Yii框架之表单验证规则大全
2015/11/16 PHP
ThinkPHP框架安全实现分析
2016/03/14 PHP
AJAX PHP无刷新form表单提交的简单实现(推荐)
2016/09/09 PHP
基于win2003虚拟机中apache服务器的访问
2017/08/01 PHP
javascript 极速 隐藏/显示万行表格列只需 60毫秒
2009/03/28 Javascript
基于jQuery的表格操作插件
2010/04/22 Javascript
表单JS弹出填写提示效果代码
2011/04/16 Javascript
基于jQuery的简单九宫格实现代码
2012/08/09 Javascript
7个JS基础知识总结
2014/03/05 Javascript
JQuery鼠标移到小图显示大图效果的方法
2015/06/10 Javascript
详解JavaScript数组的操作大全
2015/10/19 Javascript
JS实现网页每隔3秒弹出一次对话框的方法
2015/11/09 Javascript
javascript Slip.js实现整屏滑动的手机网页
2015/11/25 Javascript
node.js require() 源码解读
2015/12/13 Javascript
Bootstrap实现圆角、圆形头像和响应式图片
2016/12/14 Javascript
实例解析angularjs的filter过滤器
2016/12/14 Javascript
Bootstrap实现的经典栅格布局效果实例【附demo源码】
2017/03/30 Javascript
vue-router 导航钩子的具体使用方法
2017/08/31 Javascript
laydate如何根据开始时间或者结束时间限制范围
2018/11/15 Javascript
微信小程序实现购物车代码实例详解
2019/08/29 Javascript
vue-dplayer 视频播放器实例代码
2019/11/08 Javascript
js实现删除json中指定的元素
2020/09/22 Javascript
vue-cli —— 如何局部修改Element样式
2020/10/22 Javascript
python基础教程之自定义函数介绍
2014/08/29 Python
Python中exit、return、sys.exit()等使用实例和区别
2015/05/28 Python
Python图像处理之直线和曲线的拟合与绘制【curve_fit()应用】
2018/12/26 Python
Python对象转换为json的方法步骤
2019/04/25 Python
Python实现检测文件的MD5值来查找重复文件案例
2020/03/12 Python
Python基于xlutils修改表格内容过程解析
2020/07/28 Python
波兰电子产品购物网站:Vobis
2019/05/26 全球购物
数控技术学生的自我评价
2014/02/15 职场文书
人力资源管理专业自荐信
2014/06/24 职场文书
Python初学者必备的文件读写指南
2021/06/23 Python