微信小程序适配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 相关文章推荐
Js 中debug方式
Feb 07 Javascript
基于JQuery的日期联动实现代码
Feb 24 Javascript
javascript使用isNaN()函数判断变量是否为数字
Sep 21 Javascript
动态加载jQuery的方法
Jun 16 Javascript
jQuery+PHP+MySQL二级联动下拉菜单实例讲解
Oct 27 Javascript
使用JavaScript实现ajax的实例代码
May 11 Javascript
详解angularjs中如何实现控制器和指令之间交互
May 31 Javascript
vue 利用路由守卫判断是否登录的方法
Sep 29 Javascript
js根据json数据中的某一个属性来给数据分组的方法
Oct 08 Javascript
分享5个小技巧让你写出更好的 JavaScript 条件语句
Oct 20 Javascript
vue组件之间数据传递的方法实例分析
Feb 12 Javascript
详解vue中使用axios对同一个接口连续请求导致返回数据混乱的问题
Nov 06 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
require(),include(),require_once()和include_once()区别
2008/03/27 PHP
最新用php获取谷歌PR值算法,附上php查询PR值代码示例
2011/12/25 PHP
PHP实现的交通银行网银在线支付接口ECSHOP插件和使用例子
2014/05/10 PHP
Yii基于数组和对象的Model查询技巧实例详解
2015/12/28 PHP
PHP如何解决微信文章图片防盗链
2020/12/09 PHP
jquery 跨域访问问题解决方法(笔记)
2011/06/08 Javascript
JQuery插件fancybox无法在弹出层使用左右键的解决办法
2013/12/25 Javascript
jQuery中:button选择器用法实例
2015/01/04 Javascript
JavaScript三元运算符的多种使用技巧
2015/04/16 Javascript
jQuery对html元素的取值与赋值实例详解
2015/12/18 Javascript
分享两段简单的JS代码防止SQL注入
2016/04/12 Javascript
Javascript实现鼠标框选操作  不是点击选取
2016/04/14 Javascript
Angular2使用jQuery的方法教程
2017/05/28 jQuery
微信小程序中页面FOR循环和嵌套循环
2017/06/21 Javascript
JavaScript实现修改伪类样式
2017/11/27 Javascript
vue底部加载更多的实例代码
2018/06/29 Javascript
vue实现文字横向无缝走马灯组件效果的实例代码
2019/04/09 Javascript
详解基于Vue的支持数据双向绑定的select组件
2019/09/02 Javascript
Python实现复杂对象转JSON的方法示例
2017/06/22 Python
Python 单元测试(unittest)的使用小结
2018/11/14 Python
如何用C代码给Python写扩展库(Cython)
2019/05/17 Python
python文件选择对话框的操作方法
2019/06/27 Python
python实现超级马里奥
2020/03/18 Python
Windows10+anacond+GPU+pytorch安装详细过程
2020/03/24 Python
Python新手学习标准库模块命名
2020/05/29 Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
2020/12/14 Python
Python3使用Selenium获取session和token方法详解
2021/02/16 Python
size?爱尔兰官方网站:英国伦敦的球鞋精品店
2019/03/31 全球购物
《飞向蓝天的恐龙》教学反思
2014/04/09 职场文书
大三学年自我鉴定范文(3篇)
2014/09/28 职场文书
求职信格式范文
2015/03/19 职场文书
专家推荐信怎么写
2015/03/25 职场文书
年终工作总结范文
2019/06/20 职场文书
python not运算符的实例用法
2021/06/30 Python
PHP中国际化的字符串排序和比较对象详解
2021/08/23 PHP
Nginx中使用Lua脚本与图片的缩略图处理的实现
2022/03/18 Servers