- 8
- 0
- 约3.6千字
- 约 11页
- 2021-06-07 发布于湖南
- 举报
iPhone X适配方案 及 H5调试技巧
iPhone X适配方案
2017年9月苹果发布了iPhone X机型,对于它的“刘海儿”和底部Home Indicator,QQ空间H5也在第一时间做了兼容适配。在适配过程中,我们也尝试了这三种方案,如下:
解决方案1:客户端适配
客户端直接将webview的安全区域限制在除去安全区域的区域内。页面将展示在下图灰色webview内:
利弊分析
优点:H5前端开发没有任何适配工作量。
缺点:页面会限制在客户端限制的webview区域内,没有满屏效果。
解决方案2:使用media query
针对iPhoneX机型在html结构的meta标签加入
meta name=”viewport”
content=”…,viewport-fit=cover” /
在 css 中加入
@media only screen and (device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) {
…{ padding-top: 44px; }
…{ padding-bottom: 34px; }
}
适配效果:
利弊分析
优点:对于iPhone X适配,最简单直接有效的方法,不会影响到其他iOS机型。
缺点:对于全屏/透顶标题栏/横屏情况都要用不同的css代码进行适配,不够灵活。另外,如果苹果下一年又发布了类似iPhone X plus这样的机型,适配工作就要重新来过。
解决方案3:使用苹果提供的新属性
苹果对于iPhone X上H5页面的适配,提供了特殊属性支持,包括meta标签的viewport属性值中加入viewport-fit和加入constant(safe-area-inset-X)和env(safe-area-inset-X) ,这些属性是与iOS11以上的所有iPhone机型(不仅仅包括iPhone X)都相关的,故以iOS版本为区别具体分析一下全屏下的H5页面:
(1)针对iOS11.0以下系统
将不识别H5页面meta标签下的viewport-fit及constant(safe-area-inset-X)/env(safe-area-inset-X)属性。
(2)针对于iOS11.0-iOS11.1的系统
当设置了viewport-fit=cover,H5页面会覆盖页面安全区域全屏展示,但是这样会带来页面元素会被“刘海儿”和底部Home Indicator遮挡问题,所以苹果提供在css中设置constant(safe-area-inset-X)距离来规避遮挡问题。
这些在不同webview下会表现不同的值,我们留到后面分析。
另外,页面不加viewport-fit=cover默认viewport-fit=contain/auto,也就是我们看到的页面不能覆盖安全区域的情况,此时constant(safe-area-inset-X)的值都为0。
所以在meta标签的viewpoint中加viewport-fit=cover时iOS10和iOS11下constant(safe-area-inset-X)值的表现是不一样的。
(3)针对iOS11.2及iOS11.2以上的系统
constant() function改成了env(),其他与iOS11.2以下表现一样(详见第2点)。另外,iOS11.2新增了CSS function: min()和max()。例如:
padding-left: max(12px, env(safe-area-inset-left));
在env(safe-area-inset-left)值因为webview变化时值也可以做出相应变化,取12px和env(safe-area-inset-left)的较大值。
总结如下图:
在了解了以上情况后,大致可以知道如果要适配一个普通H5页面的顶部时,可以在meta标签的viewport属性中加入:
meta name=”viewport” content=”…,viewport-fit=cover” /
然后在需要的class里面加入:
…{
padding-top: 20px; /* iOS 10 */
padding-top: constant(safe-area-inset-top); /* iOS 11.0-iOS 11.1 */
padding-top: env(safe-area-inset-top); /*iOS 11.2 */
}
在iOS11机型上,H5加入viewport-fit=cover后,safeArea的值是基于“如果布局接触了非安全区域才会赋值”。所以在不同情况下会有不同表现。如下表所
您可能关注的文档
最近下载
- 档案整理及数字化投标方案(517页).doc VIP
- 第六章+第三节++黄土高原课件-2023-2024学年商务星球版地理八年级下册.pptx VIP
- 高一上期末数学试卷(含答案).doc VIP
- 2024年11月全国事业单位联考综合应用能力(A类)试题及参考答案.pdf VIP
- 《地理信息系统原理与应用》课程标准.doc VIP
- 商务星球版初中地理八年级下册第六章第三节黄土高原.pptx VIP
- 病句的修改大全修改病句大全及答案.docx VIP
- 1.《地理信息系统技术应用》课程标准.docx VIP
- 最优控制-西安交通大学课件lecture07.ppt VIP
- 最优控制-西安交通大学课件lecture5.ppt VIP
原创力文档

文档评论(0)