童话说说技术创业美文职业
快好知
职业母婴
职场个人
历史治疗
笔记技能
美文纠纷
幽默家庭
范文作文
乐趣解密
创业案例
社会工作
新闻家居
心理安全
技术八卦
仲裁思考
生活时事
运势奇闻
说说企业
魅力社交
安好健康
传统笑话
童话初中
男女饮食
周易阅读
爱好两性

iPhoneX适配方案及H5调试技巧

1月25日 壹世缘投稿
  这是一份有关极速适配iPhoneX秘笈,enjoy
  iPhoneX适配方案
  2017年9月苹果发布了iPhoneX机型,对于它的“刘海儿”和底部HomeIndicator,QQ空间H5也在第一时间做了兼容适配。在适配过程中,我们也尝试了这三种方案,如下:
  解决方案1:客户端适配
  客户端直接将webview的安全区域限制在除去安全区域的区域内。页面将展示在下图灰色webview内:
  利弊分析
  优点:H5前端开发没有任何适配工作量。
  缺点:页面会限制在客户端限制的webview区域内,没有满屏效果。
  解决方案2:使用mediaquery
  针对iPhoneX机型在html结构的meta标签加入
  metaname”viewport”
  content”,viewportfitcover”
  在css中加入
  mediaonlyscreenand(devicewidth:375px)and(deviceheight:812px)and(webkitdevicepixelratio:3){
  {paddingtop:44}
  {paddingbottom:34}
  }
  适配效果:
  利弊分析
  优点:对于iPhoneX适配,最简单直接有效的方法,不会影响到其他iOS机型。
  缺点:对于全屏透顶标题栏横屏情况都要用不同的css代码进行适配,不够灵活。另外,如果苹果下一年又发布了类似iPhoneXplus这样的机型,适配工作就要重新来过。
  解决方案3:使用苹果提供的新属性
  苹果对于iPhoneX上H5页面的适配,提供了特殊属性支持,包括meta标签的viewport属性值中加入viewportfit和加入constant(safeareainsetX)和env(safeareainsetX),这些属性是与iOS11以上的所有iPhone机型(不仅仅包括iPhoneX)都相关的,故以iOS版本为区别具体分析一下全屏下的H5页面:
  (1)针对iOS11。0以下系统
  将不识别H5页面meta标签下的viewportfit及constant(safeareainsetX)env(safeareainsetX)属性。
  (2)针对于iOS11。0iOS11。1的系统
  当设置了viewportfitcover,H5页面会覆盖页面安全区域全屏展示,但是这样会带来页面元素会被“刘海儿”和底部HomeIndicator遮挡问题,所以苹果提供在css中设置constant(safeareainsetX)距离来规避遮挡问题。
  这些在不同webview下会表现不同的值,我们留到后面分析。
  另外,页面不加viewportfitcover默认viewportfitcontainauto,也就是我们看到的页面不能覆盖安全区域的情况,此时constant(safeareainsetX)的值都为0。
  所以在meta标签的viewpoint中加viewportfitcover时iOS10和iOS11下constant(safeareainsetX)值的表现是不一样的。
  (3)针对iOS11。2及iOS11。2以上的系统
  constant()function改成了env(),其他与iOS11。2以下表现一样(详见第2点)。另外,iOS11。2新增了CSSfunction:min()和max()。例如:
  paddingleft:max(12px,env(safeareainsetleft));
  在env(safeareainsetleft)值因为webview变化时值也可以做出相应变化,取12px和env(safeareainsetleft)的较大值。
  总结如下图:
  在了解了以上情况后,大致可以知道如果要适配一个普通H5页面的顶部时,可以在meta标签的viewport属性中加入:
  然后在需要的class里面加入:
  {
  paddingtop:20iOS10
  paddingtop:constant(safeareainsettop);iOS11。0iOS11。1
  paddingtop:env(safeareainsettop);iOS11。2
  }
  在iOS11机型上,H5加入viewportfitcover后,safeArea的值是基于“如果布局接触了非安全区域才会赋值”。所以在不同情况下会有不同表现。如下表所示:
  适配结果:
  这里展示了iPhone8iPhoneX(iOS11。2)透顶状态栏透顶标题栏普通标题栏下打开适配H5的效果图。
  对应代码:
  test
  html{
  backgroundcolor:FFCD00;
  }
  html,body{
  width:100;
  height:100;
  }
  body,div{
  margin:0;
  padding:0;
  }
  。main{
  fontsize:24
  textalign:
  width:100;
  height:100;
  paddingtop:constant(safeareainsettop);
  paddingtop:env(safeareainsettop);
  paddingbottom:constant(safeareainsetbottom);
  paddingbottom:env(safeareainsetbottom);
  boxsizing:
  display:
  flexdirection:
  justifycontent:
  }
  顶部
  底部
  利弊分析
  优点:符合标准的适配,灵活运用的话,H5在不同webview下打开都可以有完美的展现。且考虑了未来机型的适配。
  缺点:适配iPhoneX时需要同时考虑其他iOS11机型下会不会受到影响。
  以上只分析竖屏webview下的情况,横屏webview可以自行通过模拟器进行研究。接下来介绍一下模拟器的使用。
  iPhoneX模拟器H5调试
  介绍
  加入适配代码后,在没iPhoneX的情况下,可以通过iPhoneX模拟器调试,像手机QQ手机空间里的H5页面,可以通过在模拟器上安装手机QQ手机空间app,然后调用Safari调试。
  运行模拟器
  系统要求:
  MacOS10。12。6以上
  Xcode9。0以上
  步骤:在Xcode打开一个空白项目,选择iPhoneX模拟器,并点击运行按钮即可。
  安装应用
  在Xcode上直接编译客户端代码。或者让客户端开发编译一份模拟器版本的。app文件,将其拖进运行的模拟器屏幕,应用就成功安装了。
  H5调试
  安装应用后,在应用里访问H5页面,然后打开Safari(需要开启Safari的开发工具),在菜单中选择开发Simulator页面地址,就可以用Safari的检查器对其作调试了。(当有多个页面地址,将鼠标移至二级菜单的某一个页面地址时,模拟器页面屏幕会有蓝色遮罩出现时则是选中了本页面地址),有些时候Safari识别不到模拟器,只需退出Safari,点一下模拟器屏幕,再重新打开Safari一般就会出来了。
  这种方法对于我们要调试线上H5的其他问题、要测试其他iOS设备找不到真机时同样适用。
  最后
  经过分析,使用官方提供的新属性是三种里面较佳的方案,不过使用在适配过程中应当整体考虑所有机型,webview的类型及布局、还有横竖屏对contstant(safeareainsetX)env(safeareainsetX)值的影响。
投诉 评论 转载

在网页中如何践行游戏化设计?研习下这7个案例本文将使用7个不同的、采用了游戏化设计的网站作为范例,来探讨一下它们的设计策略和实现方法。游戏化设计的概念由来已久,设计师从游戏当中汲取经验,将游戏策略运用在非游戏类的应……设计法则实例解析交互设计七大定律在设计中的应用(上篇)交互设计之父阿兰库珀说过这样一句话:“除非有更好的选择,否则就遵从标准”;在交互设计领域中,有很多被时间和前人验证过的设计法则,这些法则是从用户的行为逻辑中总结出来的,掌握这些……智慧出行:车辆数字化仪表盘交互体验设计六要素在上一篇《智慧出行:汽车仪表盘交互体验设计分析(一)》中,经过汽车仪表盘演变历史以及对五款车型具体应用的分析,总结出仪表盘承载了功能的复杂性、交互方式的多样性以及应用的多场景化……苹果表情符号的制作:这些小图标是怎么来的?编者按:对于千千万万的iPhone用户来说,手机里面的那些可爱的符号表情肯定耳熟能详了。但是你知道其中的一些emoji是怎么来的吗?第一批emoji的设计者AngelaGuzm……如何用网格系统设计出大师般的APP界面色彩、图形、排版、网格等是构成系统四大视觉语言的基础原子单位,今天来说下网格系统在产品设计中的运用及定义方法。初识网格Pinterest就如上图所示,我们设计……如何进行AR交互设计?关于AR交互设计,这篇文章展开较为具体深入的分析,相信它一定对你有所帮助的。AR类产品的出现,可能是第一次实现虚拟世界与现实世相互“融合”,完成屏幕的“跨越”,人机交互设……交互设计的“五字诀”多体会生活,懂生活就懂产品。1。送给交互新人们的“五字诀”:一曰“点”:每个控件本身属性和触发方式;举例:比如一个输入框,本身属性需要考虑可输入的字段类型、长……DesignforXuture:IOS11用户界面设计指导六DesignforFuture九大特征1。沉浸式体验大概从4、5年前就开始了一种趋势,最窄的边框都不能满足用户和厂商极端的追求,厂商们恨不得连手机边框都去掉,只留一……iPhoneX适配方案及H5调试技巧这是一份有关极速适配iPhoneX秘笈,enjoyiPhoneX适配方案2017年9月苹果发布了iPhoneX机型,对于它的“刘海儿”和底部HomeIndicato……有形的手势:混合现实的体感交互在这篇文章中,主要介绍了我们是如何专注于研究在混合现实中用肢体与自然手势进行交互的。最近我们去了互动17“(交互设计协会,其提供了一个讨论交互设计问题的在线论坛),并展示……iOS和Android规范解析:导航设计总结本文主要是对iOS和Android两个设计规范中关于如何设计导航的介绍,enjoy前面几周,我们依次介绍了iOS和Android设计规范中,关于导航控件的内容,各控件对比……如何提升信息录入效率每个UI设计师都希望自己的产品能够获得用户的喜爱,那么如何才能做到这点呢?今天我们不妨从提升信息录入效率这个角度来优化产品用户体验。因为UI设计本质上就是创建一个可供用户完成交……
游戏化设计Part1:好的游戏会让人上瘾,好的产品也会CRM系统设计(三):从0到1构建用户画像界面设计关闭按钮,不可忽视的小元素设计微交互,创建出色用户体验方案界面设计如何将筛选功能应用到用户场景中?激活存量用户,提高用户留存用户体验地图互联网平台建设(二十二)产品体验日记发现优秀的设计03期“考勤打卡”这个产品,你一点都不简单实例分析:一整套业务系统产品技术架构的方法论在产品设计中如何考虑转化率?以“跳体操”式思路,设计后台列表页
这座国家4A旅游景区,被誉为内蒙古旅游名片全年免费游玩奔驰比亚迪联手造MPV神车!可油可电,续航超1000km,3海外研学旅行,不妨牵住“利”的牛鼻子创业前期准备工作有哪些失业群体必看曹植七步诗阅读答案爸爸推销的皮鞋六年级优秀数学日记什么是量子技术(量子抗衰老是什么技术)看完《明日战记》,我五味杂陈:我们有钥匙了,但还是没打开门热 南阳旅游景点大全南阳旅游景点介绍民办造句用民办造句大全空腹喝咖啡对健康的影响什么时候不宜喝咖啡科普下有机物燃烧的化学方程式是什么

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找作文动态热点娱乐育儿情感教程科技体育养生教案探索美文旅游财经日志励志范文论文时尚保健游戏护肤业界