微信小程序适配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 相关文章推荐
asp.net 30分钟掌握无刷新 Repeater
Sep 16 Javascript
JS获取屏幕,浏览器窗口大小,网页高度宽度(实现代码)
Dec 17 Javascript
Egret引擎开发指南之编译项目
Sep 03 Javascript
jQuery+ajax实现文章点赞功能的方法
Dec 31 Javascript
BootStrap智能表单实战系列(四)表单布局介绍
Jun 13 Javascript
jQuery实现html table行Tr的复制、删除、计算功能
Jul 10 jQuery
vue+element-ui实现表格编辑的三种实现方式
Oct 31 Javascript
vue-router懒加载速度缓慢问题及解决方法
Nov 25 Javascript
vue与原生app的对接交互的方法(混合开发)
Nov 28 Javascript
Vue.js 中的 v-model 指令及绑定表单元素的方法
Dec 03 Javascript
js的对象与函数详解
Jan 21 Javascript
JavaScript的垃圾回收机制与内存管理
Aug 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
模仿OSO的论坛(五)
2006/10/09 PHP
PHP 得到根目录的 __FILE__ 常量
2008/07/23 PHP
PHP 身份证号验证函数
2009/05/07 PHP
thinkPHP+PHPExcel实现读取文件日期的方法(含时分秒)
2016/07/07 PHP
jquery tablesorter.js 支持中文表格排序改进
2009/12/09 Javascript
JavaScript 格式字符串的应用
2010/03/29 Javascript
JavaScript判断窗口是否最小化的代码(跨浏览器)
2010/08/01 Javascript
js图片向右一张张滚动效果实例代码
2013/11/23 Javascript
jQuery多媒体插件jQuery Media Plugin使用详解
2014/12/19 Javascript
javascript获取重复次数最多的字符
2015/07/08 Javascript
Perl Substr()函数及函数的应用
2015/12/16 Javascript
实现React单页应用的方法详解
2016/08/02 Javascript
详解Sea.js中Module.exports和exports的区别
2017/02/12 Javascript
Angular.js实现多个checkbox只能选择一个的方法示例
2017/02/24 Javascript
JS实现颜色的10进制转化成rgba格式的方法
2017/09/04 Javascript
详解RequireJs官方使用教程
2017/10/31 Javascript
微信小程序实现传参数的几种方法示例
2018/01/10 Javascript
webpack的tree shaking的实现方法
2019/09/18 Javascript
VUE实现密码验证与提示功能
2019/10/18 Javascript
JS如何实现动态添加的元素绑定事件
2019/11/12 Javascript
如何阻止移动端浏览器点击图片浏览
2020/08/29 Javascript
[01:06]欢迎来到上海,TI9
2018/08/26 DOTA
Python中的自定义函数学习笔记
2014/09/23 Python
Python 类与元类的深度挖掘 I【经验】
2016/05/06 Python
python3+mysql查询数据并通过邮件群发excel附件
2018/02/24 Python
python 实现语音聊天机器人的示例代码
2018/12/02 Python
python实现的读取网页并分词功能示例
2019/10/29 Python
Python爬虫自动化爬取b站实时弹幕实例方法
2021/01/26 Python
CSS3实现全景图特效示例代码
2018/03/26 HTML / CSS
中学生班主任评语
2014/01/30 职场文书
义卖募捐活动总结
2015/05/09 职场文书
如何书写授权委托书?
2019/06/25 职场文书
导游词之峨眉山
2019/12/16 职场文书
python3实现无权最短路径的方法
2021/05/12 Python
JavaScript展开运算符和剩余运算符的区别详解
2022/02/18 Javascript
MSSQL基本语法操作
2022/04/11 SQL Server