微信小程序适配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下利用jsonp跨域访问实现方法
Jul 29 Javascript
javascript自动改变文字大小和颜色的效果的小例子
Aug 02 Javascript
js获取或设置当前窗口url参数的小例子
Oct 14 Javascript
高效的获取当前元素是父元素的第几个子元素
Oct 15 Javascript
纯javascript模仿微信打飞机小游戏
Aug 20 Javascript
JavaScript学习笔记之数组随机排序
Mar 23 Javascript
Javascript从数组中随机取出不同元素的两种方法
Sep 22 Javascript
微信小程序 Canvas增强组件实例详解及源码分享
Jan 04 Javascript
详解闭包解决jQuery中AJAX的外部变量问题
Feb 22 Javascript
jQuery插件zTree实现删除树节点的方法示例
Mar 08 Javascript
JS条形码(一维码)插件JsBarcode用法详解【编码类型、参数、属性】
Apr 19 Javascript
JavaScript求一个数组中重复出现次数最多的元素及其下标位置示例
Jul 23 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
Apache, PHP在Windows 9x/NT下的安装与配置 (二)
2006/10/09 PHP
php中通过curl模拟登陆discuz论坛的实现代码
2012/02/16 PHP
php入门之连接mysql数据库的一个类
2012/04/21 PHP
PHP面向对象程序设计方法实例详解
2016/12/24 PHP
ThinkPHP中类的构造函数_construct()与_initialize()的区别详解
2017/03/13 PHP
PHP实现百度人脸识别
2019/05/06 PHP
JavaScript 事件参考手册
2008/12/24 Javascript
jQuery中bind与live的用法及区别小结
2014/01/27 Javascript
使用JavaScript获取电池状态的方法
2014/05/03 Javascript
jQuery改变form表单的action,并进行提交的实现代码
2016/05/25 Javascript
轮播的简单实现方法
2016/07/28 Javascript
jQuery替换节点用法示例(使用replaceWith方法)
2016/09/08 Javascript
Javascript6中字符串的四个新用法分享
2016/09/11 Javascript
JS中this上下文对象使用方式
2016/10/09 Javascript
浅谈Vue 初始化性能优化
2017/08/31 Javascript
基于Vue开发数字输入框组件
2017/12/19 Javascript
微信小程序中使用ECharts 异步加载数据实现图表功能
2018/07/13 Javascript
vue 使用自定义指令实现表单校验的方法
2018/08/28 Javascript
使用Jenkins部署React项目的方法步骤
2019/03/11 Javascript
浅谈redux, koa, express 中间件实现对比解析
2019/05/23 Javascript
layui实现数据表格点击搜索功能
2020/03/26 Javascript
vuex+axios+element-ui实现页面请求loading操作示例
2020/02/02 Javascript
vue 判断两个时间插件结束时间必选大于开始时间的代码
2020/11/04 Javascript
Python切片用法实例教程
2014/09/08 Python
Python实现SQL注入检测插件实例代码
2019/02/02 Python
python通过matplotlib生成复合饼图
2020/02/06 Python
python实现简单井字棋小游戏
2020/03/05 Python
keras训练曲线,混淆矩阵,CNN层输出可视化实例
2020/06/15 Python
雅诗兰黛(Estee Lauder)英国官方网站:世界顶级化妆品牌
2016/12/29 全球购物
美国半成品食材配送服务商:Home Chef
2018/01/25 全球购物
初二生物教学反思
2014/02/03 职场文书
应届大专生自荐书
2014/06/16 职场文书
电气工程及其自动化专业毕业生自荐信
2014/06/21 职场文书
2014年国庆节寄语
2014/09/19 职场文书
2015秋季小学开学寄语
2015/05/27 职场文书
Oracle笔记
2021/04/05 Oracle