微信小程序适配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 打开页面window.location和window.open的区别
Mar 17 Javascript
js时间日期和毫秒的相互转换
Feb 22 Javascript
11种ASP连接数据库的方法
Sep 18 Javascript
JS+CSS实现简单的二级下拉导航菜单效果
Sep 21 Javascript
javascript实现unicode与ASCII相互转换的方法
Dec 10 Javascript
JS实现的Unicode编码转换操作示例
Apr 28 Javascript
Angular2生命周期钩子函数的详细介绍
Jul 10 Javascript
Angular之toDoList的实现代码示例
Dec 02 Javascript
解决Vue2.0 watch对象属性变化监听不到的问题
Sep 11 Javascript
图片文字识别(OCR)插件Ocrad.js教程
Nov 26 Javascript
Vue实现剪贴板复制功能
Dec 31 Javascript
vue data对象重新赋值无效(未更改)的解决方式
Jul 24 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/06/07 PHP
php中利用post传递字符串重定向的实现代码
2011/04/21 PHP
fleaphp crud操作之findByField函数的使用方法
2011/04/23 PHP
PHP和JavaScrip分别获取关联数组的键值示例代码
2013/09/16 PHP
在PHP中使用FastCGI解析漏洞及修复方案
2015/11/10 PHP
JavaScript学习点滴 call、apply的区别
2010/10/22 Javascript
用Js实现的动态增加表格示例自己写的
2013/10/21 Javascript
jquery实现表单验证简单实例演示
2015/11/23 Javascript
Bootstrap每天必学之标签与徽章
2015/11/27 Javascript
使用DeviceOne实现微信小程序功能
2016/12/29 Javascript
Jquery实时监听input value的实例
2017/01/26 Javascript
微信小程序实现图片轮播及文件上传
2017/04/07 Javascript
深入浅析javascript继承体系
2017/10/23 Javascript
vue注册组件的几种方式总结
2018/03/08 Javascript
webpack开发环境和生产环境的深入理解
2018/11/08 Javascript
vue使用canvas实现移动端手写签名
2020/09/22 Javascript
js轮播图之旋转木马效果
2020/10/13 Javascript
[00:33]2016完美“圣”典风云人物:BurNIng宣传片
2016/12/10 DOTA
详解python之配置日志的几种方式
2017/05/22 Python
python+selenium实现京东自动登录及秒杀功能
2017/11/18 Python
Python图形绘制操作之正弦曲线实现方法分析
2017/12/25 Python
python2.7无法使用pip的解决方法(安装easy_install)
2018/04/03 Python
对pandas通过索引提取dataframe的行方法详解
2019/02/01 Python
python几种常用功能实现代码实例
2019/12/25 Python
tensorflow如何继续训练之前保存的模型实例
2020/01/21 Python
python中使用paramiko模块并实现远程连接服务器执行上传下载功能
2020/02/29 Python
Python图像处理二值化方法实例汇总
2020/07/24 Python
美国礼品卡交易网站:Cardpool
2018/08/27 全球购物
马来西亚演唱会订票网站:StubHub马来西亚
2018/10/18 全球购物
规划编制实施方案
2014/03/15 职场文书
教师党员一句话承诺
2014/03/28 职场文书
小学生美德少年事迹材料
2014/08/24 职场文书
2014机关党员干部“正风肃纪”思想汇报
2014/09/15 职场文书
故宫的导游词
2015/01/31 职场文书
nginx刷新页面出现404解决方案(亲测有效)
2022/03/18 Servers
如何解决flex文本溢出问题小结
2022/07/15 HTML / CSS