微信小程序适配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无参数和有参数类继承问题解决方法
Mar 02 Javascript
学习JavaScript鼠标响应事件
Dec 25 Javascript
详解javascript事件冒泡
Jan 09 Javascript
jQuery文字轮播特效
Feb 12 Javascript
ES6中Generator与异步操作实例分析
Mar 31 Javascript
Angular2使用Angular-CLI快速搭建工程(二)
May 21 Javascript
angular4 共享服务在多个组件中数据通信的示例
Mar 30 Javascript
深入理解JavaScript的async/await
Aug 05 Javascript
iview通过Dropdown(下拉菜单)实现的右键菜单
Oct 26 Javascript
vue-cli3 从搭建到优化的详细步骤
Jan 20 Javascript
多个vue子路由文件自动化合并的方法
Sep 03 Javascript
vue-axios同时请求多个接口 等所有接口全部加载完成再处理操作
Nov 09 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 全文搜索和替换的实现代码
2008/07/29 PHP
PHP下获取上个月、下个月、本月的日期(strtotime,date)
2014/02/02 PHP
详解WordPress中过滤链接与过滤SQL语句的方法
2015/12/18 PHP
php实现word转html的方法
2016/01/22 PHP
Laravel实现表单提交
2017/05/07 PHP
YII2框架中添加自定义模块的方法实例分析
2020/03/18 PHP
jquery 插件学习(五)
2012/08/06 Javascript
javascript通过navigator.userAgent识别各种浏览器
2013/10/25 Javascript
JavaScript SetInterval与setTimeout使用方法详解
2013/11/15 Javascript
Boostrap栅格系统与自己额外定义的媒体查询的冲突问题
2017/02/19 Javascript
JS实现的DOM插入节点操作示例
2018/04/04 Javascript
解决JavaScript layui 下拉框不显示的问题
2018/08/14 Javascript
jquery实现选项卡切换代码实例
2019/05/14 jQuery
优化Vue项目编译文件大小的方法步骤
2019/05/27 Javascript
vue 验证两次输入的密码是否一致的方法示例
2020/09/29 Javascript
微信小程序实现左滑删除效果
2020/11/18 Javascript
layui使用及简单的三级联动实现教程
2020/12/01 Javascript
python str与repr的区别
2013/03/23 Python
Python 正则表达式入门(中级篇)
2016/12/07 Python
深入理解python中函数传递参数是值传递还是引用传递
2017/11/07 Python
python交互式图形编程实例(一)
2017/11/17 Python
python解析html提取数据,并生成word文档实例解析
2018/01/22 Python
Python中循环引用(import)失败的解决方法
2018/04/22 Python
对Python中9种生成新对象的方法总结
2018/05/23 Python
Numpy数组array和矩阵matrix转换方法
2019/08/05 Python
python飞机大战pygame碰撞检测实现方法分析
2019/12/17 Python
TensorFlow中如何确定张量的形状实例
2020/06/23 Python
python 装饰器的使用示例
2020/10/10 Python
Django自定义YamlField实现过程解析
2020/11/11 Python
澳大利亚排名第一的露营和户外设备在线零售商:Outbax
2020/05/06 全球购物
销售自我评价
2013/10/22 职场文书
《小猫刮胡子》教学反思
2014/02/21 职场文书
2014信息公开实施方案
2014/02/22 职场文书
群众路线教育党员自我剖析材料
2014/10/06 职场文书
领导干部作风建设工作总结
2014/10/23 职场文书
忠诚与背叛观后感
2015/06/04 职场文书