微信小程序适配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 相关文章推荐
关于 byval 与 byref 的区别分析总结
Oct 08 Javascript
jquery加载图片时以淡入方式显示的方法
Jan 14 Javascript
js计算任意值之间随机数的方法
Jan 16 Javascript
Bootstrap模块dropdown实现下拉框响应
May 22 Javascript
详解如何将angular-ui的图片轮播组件封装成一个指令
May 09 Javascript
node.js中cluster的使用教程
Jun 09 Javascript
javaScript动态添加Li元素的实例
Feb 24 Javascript
JavaScript常用数学函数用法示例
May 14 Javascript
JavaScript引用类型Object常见用法实例分析
Aug 08 Javascript
微信小程序时间控件picker view使用详解
Dec 28 Javascript
Vue中遍历数组的新方法实例详解
Jul 21 Javascript
解决layui的table插件无法多层级获取json数据的问题
Sep 19 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
php图片加水印原理(超简单的实例代码)
2013/01/18 PHP
解析php php_openssl.dll的作用
2013/07/01 PHP
ThinkPHP使用心得分享-分页类Page的用法
2014/05/15 PHP
PHP实现的DES加密解密实例代码
2016/04/06 PHP
jquery中的on方法使用介绍
2013/12/29 Javascript
For循环中分号隔开的3部分的执行顺序探讨
2014/05/27 Javascript
JavaScript实现的encode64加密算法实例分析
2015/04/15 Javascript
jquery 表单验证之通过 class验证表单不为空
2015/11/02 Javascript
jquery pagination插件动态分页实例(Bootstrap分页)
2016/12/23 Javascript
javascript事件的绑定基础实例讲解(34)
2017/02/14 Javascript
JS高仿抛物线加入购物车特效实现代码
2017/02/20 Javascript
react实现菜单权限控制的方法
2017/12/11 Javascript
javascript数组去重方法总结(推荐)
2019/03/20 Javascript
Nodejs中的require函数的具体使用方法
2019/04/02 NodeJs
JavaScript遍历数组和对象的元素简单操作示例
2019/07/09 Javascript
js实现购物车商品数量加减
2020/09/21 Javascript
深入源码解析Python中的对象与类型
2015/12/11 Python
python扫描proxy并获取可用代理ip的实例
2017/08/07 Python
Django REST framework 分页的实现代码
2019/06/19 Python
python3获取url文件大小示例代码
2019/09/18 Python
python3实现用turtle模块画一棵随机樱花树
2019/11/21 Python
python如何使用jt400.jar包代码实例
2019/12/20 Python
tensorflow多维张量计算实例
2020/02/11 Python
sublime3之内网安装python插件Anaconda的流程
2020/11/10 Python
Python函数调用追踪实现代码
2020/11/27 Python
Kickers鞋英国官网:男士、女士和儿童鞋
2021/03/08 全球购物
电气技术员岗位职责
2013/11/19 职场文书
业绩考核岗位职责
2014/02/01 职场文书
职位说明书范文
2014/05/07 职场文书
生物科学专业自荐书
2014/06/20 职场文书
医院营销工作计划
2015/01/16 职场文书
大学生自荐信范文
2015/03/05 职场文书
质量整改通知单
2015/04/21 职场文书
幼儿园教师安全责任书
2015/05/08 职场文书
2019新员工试用期转正工作总结范文
2019/08/21 职场文书
CentOS下安装Jenkins的完整步骤
2022/04/07 Servers