精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

微信小程序適配iPhone X總結(jié)

移動開發(fā)
本文主要介紹我們的知識小集小程序在適配 iPhone X 屏幕時(shí)遇到的一些問題以及總結(jié),希望對你的小程序開發(fā)能有所幫助。

本文主要介紹我們的知識小集小程序在適配 iPhone X 屏幕時(shí)遇到的一些問題以及總結(jié),希望對你的小程序開發(fā)能有所幫助。

iPhone X 屏幕數(shù)據(jù)

在去年 9 月份 iPhone X 正式發(fā)布后,引發(fā)了一波 iOS App 適配 iPhone X 的熱潮和技術(shù)文章。我們這里先簡單總結(jié)一下 iPhone X 屏幕的基礎(chǔ)數(shù)據(jù),方便后續(xù)在小程序開發(fā)中進(jìn)行適配。

  • 屏幕尺寸:5.8 英寸(對角線)
  • 屏幕物理分辨率:1125px × 2436px,458 ppi
  • 實(shí)際開發(fā)適配尺寸:375pt × 812pt,@3x

此外,由于在 iPhone X 屏幕頂部狀態(tài)欄區(qū)域有“齊劉海”,以及在屏幕底部增加了“操作條”,如下圖所示,因此,我們在開發(fā)中需要注意安全區(qū)域的問題。 

[[238031]]

根據(jù)蘋果官方的文檔,iPhone X 頂部狀態(tài)欄的適配安全區(qū)域的高度為 44pt,底部操作條區(qū)域的高度為 34pt。另外,在 iPhone X 中,一些系統(tǒng) Bar 的默認(rèn)高度相比于之前的設(shè)備也發(fā)生了變化,如下表所示。 

所以在 iOS App 開發(fā)中,如果我們使用系統(tǒng)默認(rèn)的 UINavigationController 和 UITabBarController 時(shí),則無需額外的適配工作,iOS 系統(tǒng)會自動適配好相關(guān) Bar 的安全區(qū)域問題。如果我們使用了自定義的導(dǎo)航欄和標(biāo)簽欄,則需要注意根據(jù)設(shè)備類型區(qū)分設(shè)置這些 Bar 的不同高度。

小程序的尺寸單位

為了解決不同屏幕尺寸的適配問題,小程序自己定了一個(gè)尺寸單位:rpx(responsive pixel),它可以根據(jù)屏幕寬度進(jìn)行自適應(yīng)。小程序中規(guī)定,所有設(shè)備的屏幕寬度都為 750rpx,根據(jù)設(shè)備屏幕實(shí)際寬度的不同,1rpx 所代表的實(shí)際像素值也不一樣。

根據(jù)微信開發(fā)文檔,在 4.7 英寸的 iPhone 設(shè)備上(iPhone 6/7/8),屏幕寬度為 375px(此處應(yīng)該理解為 375 point),共有 750 個(gè)物理像素,則 750rpx = 375px = 750 物理像素,1rpx = 0.5px = 1物理像素。 

小程序中如何判斷設(shè)備為 iPhone X

上面我們簡要介紹了 iPhone X 的屏幕數(shù)據(jù)和小程序中的尺寸單位作為鋪墊,現(xiàn)在終于要切入正題了,要在小程序中適配 iPhone X 屏幕,首先我們需要知道如何判斷設(shè)備類型。

微信的小程序 API 中提供了一個(gè) wx.getSystemInfo(OBJECT) 方法用于獲取用戶手機(jī)的系統(tǒng)信息和設(shè)備信息,包含如下數(shù)據(jù): 

上述每個(gè)字段的含義詳見文檔,我們不再一一贅述。

因此,我們可以根據(jù)該方法返回的手機(jī)型號字段 model 是否包含 iPhone X 字符串來判斷設(shè)備是否為 iPhone X,也可以根據(jù) screenHeight 的高度是否等于 812 來判斷。

NOTE: 這里有一個(gè)小坑需要注意,在微信開發(fā)者工具中的模擬器,如果選擇為 iPhone X,此時(shí)獲取到的 model 值為 iPhone X,導(dǎo)致我以為真機(jī)也是這個(gè)值,于是直接用 if (model == 'iPhone X') 來判斷,但其實(shí)真機(jī)下 model 的值為這種格式: iPhone X (GSM+CDMA),因此我們需要用字符串檢索匹配進(jìn)行判斷。

綜上,我們可以在 app.js 的 globalData 中添加一個(gè)字段 isIPX 用于標(biāo)識當(dāng)前設(shè)備是否為 iPhone X,然后在小程序啟動時(shí) onLaunch 中調(diào)用 wx.getSystemInfo(OBJECT) 方法并在其 success 回調(diào)中讀取 model 字段進(jìn)行分析,代碼大致如下:

  1. App({ 
  2.   // 全局?jǐn)?shù)據(jù) 
  3.   globalData: { 
  4.     // 其他數(shù)據(jù)定義 ... 
  5.      
  6.     isIPX: false, // 當(dāng)前設(shè)備是否為 iPhone X 
  7.   }, 
  8.    
  9.   // 小程序啟動入口 
  10.   onLaunch: function (options) { 
  11.     // 其他啟動代碼... 
  12.      
  13.     // 判斷設(shè)備是否為 iPhone X 
  14.     this.checkIsIPhoneX() 
  15.   }, 
  16.    
  17.   checkIsIPhoneX: function() { 
  18.     const self = this 
  19.     wx.getSystemInfo({ 
  20.       success: function (res) { 
  21.         // 根據(jù) model 進(jìn)行判斷 
  22.         if (res.model.search('iPhone X') != -1) { 
  23.           self.globalData.isIPX = true 
  24.         } 
  25.         // 或者根據(jù) screenHeight 進(jìn)行判斷 
  26.         // if (res.screenHeight == 812) { 
  27.         //   self.globalData.isIPX = true 
  28.         // } 
  29.       } 
  30.     }) 
  31.   }, 

如果需要小程序啟動時(shí)立即獲取設(shè)備相關(guān)信息,也可以調(diào) wx.getSystemInfoSync() 方法,它會同步獲取數(shù)據(jù)并立即返回。

頁面適配實(shí)戰(zhàn)

在小程序頁面開發(fā)中,涉及到需要適配 iPhone X 的地方主要有:導(dǎo)航欄(NavigationBar),標(biāo)簽欄(TabBar)以及頁面底部的吸底按鈕。

導(dǎo)航欄和標(biāo)簽欄適配

如果我們使用微信小程序官方組件進(jìn)行開發(fā),沒有進(jìn)行自定義,在 app.json 文件中設(shè)置 tabBar 頁面,且 window 的 navigationStyle 值為 default,那么我們無需在 iPhone X 中對導(dǎo)航欄和標(biāo)簽欄進(jìn)行適配,微信會自動幫我們適配好,如下圖為知識小集小程序的首頁: 

但是我們?nèi)绻亲远x導(dǎo)航欄(在 app.json 文件中設(shè)置 window 的 navigationStyle 為 custom,此時(shí)只保留右上角膠囊狀的按鈕,需要開發(fā)者自己畫導(dǎo)航欄樣式)和標(biāo)簽欄,則我們需要在每個(gè)頁面中判斷設(shè)備類型,并針對 iPhone X 屏幕在安全區(qū)域內(nèi)進(jìn)行布局,并修改相關(guān) Bar 的高度值(見上述表格)。

以自定義導(dǎo)航欄適配為例,步驟如下:

(1)在每個(gè)頁面的 page.js 中先讀取 app.js 中的 isIPX 值,如下:

  1. const app = getApp() 
  2.  
  3. Page({ 
  4.   data: { 
  5.     // 頁面其他數(shù)據(jù)... 
  6.      
  7.     isIPX: app.globalData.isIPX, 
  8.   }, 
  9.    
  10.   // 其他代碼 

(2)然后在 page.wxss 樣式文件中對某一個(gè)視圖 View 分別為普通屏幕和 iPhone X 屏幕寫兩種樣式,如下:

  1. .navi-bar-view { 
  2.   height: 64px; 
  3.   /* 其他樣式值 */ 
  4. .navi-bar-view-IPX { 
  5.   height: 88px; 
  6.   /* 其他樣式值 */ 

(3)***在 page.wxml 頁面結(jié)構(gòu)布局中根據(jù) isIPX 的值給 View 設(shè)置不同的 class 樣式,如下:

  1. <view class="{{isIPX ? 'navi-bar-view-IPX' : 'navi-bar-view'}}"
  2. </view

此外,對于自定義導(dǎo)航欄和標(biāo)簽欄,我建議還是要遵循 iPhone UI 的設(shè)計(jì)規(guī)范,樣式可以參考蘋果官方的渲染圖: 

吸底按鈕適配

在小程序頁面中,吸底按鈕是很常見的一種設(shè)計(jì),我們一般會把一些重要的按鈕放在頁面底部懸浮不動,例如我們知識小集小程序的“小集詳情頁”底部的“收藏”和“轉(zhuǎn)發(fā)”按鈕: 

在 iPhone X 中我們需要把吸底按鈕往上偏移 34 像素,可通過在 CSS 樣式中設(shè)置 padding-bottom 為 34px 實(shí)現(xiàn),參考代碼如下:

  1. .feed-bottom-view { 
  2.   width: 100%; 
  3.   height: 48px; /* 吸底按鈕的高度 */ 
  4.   bottom: 0; 
  5.   opacity: 0.95; 
  6.   position: fixed; 
  7.   border-top-style: solid; 
  8.   border-top-width: 0.5px; /* 分割線的高度 */ 
  9.   border-color: lightgrey; 
  10.   background-color: #F8F8F8; 
  11. .feed-bottom-view-IPX { 
  12.   /* iPhone X 內(nèi)容往上偏移 34px */ 
  13.   padding-bottom: 34px; 
  14.  
  15. <view class="{{isIPX ? 'feed-bottom-view feed-bottom-view-IPX' : 'feed-bottom-view'}}"
  16. <!-- 底部吸底按區(qū)域 --> 
  17. </view

備注:如前面所述,對于不同設(shè)備寬度,1rpx 所代表的實(shí)際像素值也不一樣,而在不同尺寸的 iPhone 設(shè)備(3.5/4.0/4.7/5.5 英寸)中,雖然它們的寬度不同,但其導(dǎo)航欄+狀態(tài)欄的高度都為 64pt(iPhone X 為 88pt),標(biāo)簽欄 TabBar 的高度都為 49pt(iPhone X 為 83pt)。所以在小程序開發(fā)中,當(dāng)我們需要自定義導(dǎo)航欄、標(biāo)簽欄,或者適配 iPhone X 頂部和底部安全區(qū)域時(shí),我建議此處的單位直接使用 px(在小程序中對應(yīng) iOS 開發(fā)中的點(diǎn) pt)而不使用 rpx(當(dāng)然頁面的其他元素的尺寸描述還是推薦使用 rpx),以確保最終渲染顯示的高度與 iOS 系統(tǒng)默認(rèn)的一致。

總結(jié)

本文簡要介紹了在小程序開發(fā)中如何適配 iPhone X 屏幕,更多細(xì)節(jié)請查閱我們在 GitHub 上開源的知識小集小程序的代碼:awesome-tips-wx-app

責(zé)任編輯:未麗燕 來源: Zubin's Blog
相關(guān)推薦

2018-03-30 15:46:17

直播微信小程序

2017-05-08 15:03:07

微信小程序開發(fā)實(shí)戰(zhàn)

2016-10-20 21:02:12

微信小程序javascript

2017-01-09 10:01:49

微信小程序

2017-06-09 10:40:00

微信小程序架構(gòu)分析

2016-09-28 18:10:59

微信程序MINA

2017-06-09 12:58:20

微信小程序架構(gòu)分析

2017-06-09 10:06:54

微信小程序架構(gòu)分析

2016-11-04 10:31:49

微信程序指南

2016-11-22 11:23:52

微信小程序騰訊微信

2016-09-27 15:40:58

微信程序前端

2016-11-04 10:49:48

微信小程序

2021-06-10 10:51:27

程序基礎(chǔ)架構(gòu)

2016-09-27 16:38:24

JavaScript微信Web

2016-11-19 18:06:44

微信小程序張小龍

2017-06-27 10:53:32

2016-09-27 20:36:23

微信HttpWeb

2017-02-06 13:32:12

微信小程序思想

2017-11-13 16:35:36

iPhone X全面屏APP

2016-11-04 09:55:16

微信小程序
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

国产在线|日韩| 97视频资源在线观看| 台湾成人av| 精品无码免费视频| 暖暖日本在线观看| 色婷婷综合久久久久久| 亚洲免费在线观看视频| 日韩免费av片在线观看| 亚洲啪av永久无码精品放毛片| 欧美天堂在线视频| 欧美精品成人| 日韩一级在线观看| 一本一道久久a久久精品综合| 日本韩国欧美中文字幕| 国产精品videossex| 一区二区不卡在线播放| 91深夜福利视频| 精品国产大片大片大片| 久久不卡日韩美女| 中文字幕欧美区| 国产精品第3页| 亚洲午夜精品久久久久久高潮| 中文在线а√天堂| 337p粉嫩大胆色噜噜噜噜亚洲| 久久免费视频网站| 国产69视频在线观看| 亚洲电影有码| 欧美午夜www高清视频| 精品中文字幕一区| 国产亚洲欧美在线精品| 九九久久婷婷| 欧美性一级生活| 亚洲人一区二区| 四虎精品成人免费网站| 欧美专区18| 亚洲欧洲日产国产网站| 日本爱爱免费视频| 日本美女在线中文版| 精品一区二区三区不卡| 欧美大尺度在线观看| 国产精品果冻传媒| 自由日本语热亚洲人| 国产欧美一区二区在线观看| 国产欧美日韩视频| 青青草精品在线视频| 国产999精品在线观看| 一区二区三区精品在线观看| 伊人久久大香线蕉午夜av| 国产福利资源在线| 日韩一级不卡| 国产一区av在线| 初高中福利视频网站| 成年男女免费视频网站不卡| 久久久久国产精品人| 国产日韩在线视频| 怡红院男人的天堂| 亚洲国产日韩在线| 一区二区欧美亚洲| 日本中文字幕有码| 日本高清不卡一区二区三区视频 | 一区二区三区欧美日韩| 国产伦精品一区二区三区在线| 中文字幕国产在线观看| 美女诱惑一区| 国产精品91久久久| 国产在线视频你懂的| 九色精品国产蝌蚪| 亚洲最新av在线| 国产一二三四视频| 精品国产一区二区三区不卡蜜臂| 在线观看免费视频综合| 国产精品国三级国产av| 99青草视频在线播放视| 成人一区二区三区视频| 国产精品稀缺呦系列在线| 久一视频在线观看| 日韩一级在线| 国产成人午夜视频网址| 岳乳丰满一区二区三区| 亚洲一区二区三区高清| 操人视频在线观看欧美| 国产在线综合视频| 手机在线一区二区三区| 亚洲欧洲日产国产网站| 人成免费在线视频| 一区二区三区视频免费观看| 精品国产污网站| 欧美国产日韩另类| 成人自拍视频网| 欧美电影影音先锋| 超碰在线97免费| 久久久久亚洲精品中文字幕| 欧美日韩中字一区| 丰满少妇被猛烈进入高清播放| 手机在线免费看av| 亚洲免费高清视频在线| av之家在线观看| 波多野结衣精品| 亚洲尤物视频在线| 日本成年人网址| 国产伦理精品| 欧美日韩视频第一区| 麻豆网站免费观看| 国产午夜精品一区在线观看 | 亚州av在线播放| 成人一区二区在线观看| 日韩欧美三级一区二区| 国产在线三区| 久久久高清一区二区三区| 永久免费精品视频网站| 激情黄产视频在线免费观看| 欧美欧美午夜aⅴ在线观看| 国产三级日本三级在线播放 | 国产精品久久久精品| 国产黄色片av| 欧美国产精品劲爆| 国产免费黄视频| 日日夜夜精品视频| 日韩三级电影网址| 久久精品三级视频| 99视频精品免费观看| 91丨九色丨国产| 黄页视频在线播放| 亚洲人成影院在线观看| 永久免费看av| 91福利在线免费| 欧美日韩一区二区三区| 日韩手机在线观看视频| 影视一区二区三区| 亚洲福利在线看| 久久亚洲AV成人无码国产野外| 美女毛片一区二区三区四区最新中文字幕亚洲 | 免费观看黄色av| 一区二区三区小说| 精品国产鲁一鲁一区二区三区| 国产高清亚洲| 最近更新的2019中文字幕| 中国毛片直接看| 在线日韩中文| 国产超碰91| 亚洲 小说区 图片区 都市| 一区二区三区日韩在线观看| 亚洲精品乱码久久久久久动漫| 欧美hd在线| 国产精品自在线| 嫩草在线视频| 91精品国产免费| 无码成人精品区在线观看| 欧美 日韩 国产 一区| 日本欧美一级片| 婷婷亚洲一区二区三区| 欧美日韩一区二区三区| 美女久久久久久久久久| 久久久久久久久久久久久久| 久久久久久国产精品美女| 免费观看日批视频| 国产精品一区二区三区网站| 九九99玖玖| 成人精品一区| 亚洲成人午夜电影| 狠狠躁狠狠躁视频专区| caoporn成人免费视频在线| 亚洲欧美国产制服动漫| 18岁成人毛片| 久久久久久夜| 亚洲乱码国产乱码精品天美传媒| 毛片网站在线看| 欧美色大人视频| 中文字幕美女视频| 国产成人精品www牛牛影视| 日本一区二区久久精品| heyzo高清国产精品| 亚洲国产精品女人久久久| 成人做爰视频网站| 国产精品羞羞答答xxdd| 日本福利视频一区| 曰本一区二区| 一区二区三区美女xx视频| 做爰视频毛片视频| 337p粉嫩大胆噜噜噜噜噜91av| 日本毛片在线免费观看| 日产精品一区二区| 欧美一区在线直播| 殴美一级特黄aaaaaa| 欧美性生交大片免网| 中文字幕伦理片| 国产激情视频一区二区三区欧美 | 国产三级电影在线| 欧美日韩午夜剧场| 一级黄色录像毛片| 国产综合久久久久影院| 视频一区二区综合| 久久在线观看| 日本韩国在线不卡| 亚洲日本香蕉视频| 欧美美女喷水视频| 日韩免费一级片| 成人午夜av影视| 国产a级片免费观看| 91综合在线| 精品免费二区三区三区高中清不卡 | 一本色道久久综合狠狠躁的番外| 91免费精品视频| 免费观看亚洲| 亚洲国产精品va在线| 天天爽夜夜爽人人爽| 夜夜嗨av一区二区三区四季av| 国产aⅴ激情无码久久久无码| 中文亚洲字幕| 男插女免费视频| 亚洲热av色在线播放| 欧美一级片一区| 美足av综合网| 精品国产美女在线| 国产裸体无遮挡| 亚洲欧美国产三级| 日本一级免费视频| caoporn国产一区二区| 黄色www网站| 伊人成综合网yiren22| 91影院未满十八岁禁止入内| 黄色成人在线视频| 国产不卡在线观看| 电影网一区二区| 性欧美视频videos6一9| 完全免费av在线播放| 国模无码国产精品视频| 国产精品久久久久久久久久久免费看| 黄色一级免费大片| 国产毛片久久| 国产妇女馒头高清泬20p多| 欧美在线二区| 男人天堂成人网| 99久久影视| 成人区精品一区二区| 四虎精品在线观看| 欧美精品久久久久久久久| 黄色网页在线播放| 久久久精品国产亚洲| 免费看国产片在线观看| 日韩视频免费直播| 成人黄色在线观看视频| 黑人精品xxx一区| 日韩特黄一级片| 亚洲mv在线观看| 欧美日韩国产黄色| 中文字幕成人av| 国产探花视频在线| 国产69精品久久久久777| 国产精品igao网网址不卡| 国产自产视频一区二区三区| 婷婷激情5月天| 国产乱人伦精品一区二区在线观看| 日本中文字幕影院| 国产精品久久久久9999高清| 成人午夜视频在线观看免费| 亚洲福利一区| 亚洲三区视频| 国产精品久久久久无码av| 干日本少妇视频| 1000部精品久久久久久久久| 欧美色图另类小说| 免费在线观看成人| 91精品91久久久中77777老牛| 国产精品美女久久久浪潮软件| 亚洲午夜精品久久久久久人妖| 久久久久久黄| 天堂视频免费看| 大桥未久av一区二区三区中文| 中文字幕无码人妻少妇免费| 久久久精品天堂| 日韩成人短视频| 亚洲高清三级视频| 自拍偷拍精品视频| 日韩一级黄色大片| 飘雪影视在线观看免费观看 | 亚洲宅男天堂在线观看无病毒| 国产网址在线观看| 色婷婷综合久久久中文一区二区| 青娱乐国产在线视频| 欧美日韩免费观看中文| 中文字幕永久在线观看| 日韩一级完整毛片| 精品欧美不卡一区二区在线观看| 久久精品久久久久久| av在线资源| 国产精品网红直播| 精品国产一区二区三区不卡蜜臂| 亚洲二区自拍| 一区在线观看| 亚洲精品20p| 99久久综合精品| 三级黄色在线观看| 欧美日韩中文在线观看| 国产xxxx在线观看| 亚洲人成网站色ww在线| 日本高清成人vr专区| 国产mv免费观看入口亚洲| 6080亚洲理论片在线观看| 99久热re在线精品996热视频| 婷婷久久综合九色综合99蜜桃| 国产精品日本一区二区 | 影音先锋日韩有码| 国产啊啊啊视频在线观看| 国产精品久久久久久久久久ktv| 91精品啪在线观看国产爱臀| 一本一道久久a久久精品综合| 日韩视频二区| 少妇献身老头系列| 国产精品成人在线观看| 日韩精品一区二区亚洲av| 日韩欧美黄色影院| 午夜免费福利视频| 中国日韩欧美久久久久久久久| 大乳在线免费观看| 亚州国产精品久久久| 精品国产18久久久久久二百| 日韩福利二区| 天堂蜜桃一区二区三区| 在线观看av日韩| 91理论电影在线观看| 国产无码精品视频| 日韩免费性生活视频播放| 久久综合之合合综合久久| 国产精品va在线播放我和闺蜜| 99香蕉久久| 男女激情免费视频| 国产毛片一区| 一级特黄a大片免费| 国产亚洲成aⅴ人片在线观看| 国产精品情侣呻吟对白视频| 高跟丝袜一区二区三区| 性xxxx视频| 97免费在线视频| 久久365资源| 欧美亚洲日本一区二区三区| 国产69精品久久久久777| 青青草手机在线观看| 欧美一级电影网站| 97超碰资源站在线观看| 亚洲91精品在线| 久久365资源| 中国丰满人妻videoshd | 欧美巨胸大乳hitomi| 在线视频亚洲一区| www.视频在线.com| 国产噜噜噜噜噜久久久久久久久| 精品日韩毛片| 老司机午夜免费福利视频| 国产精品自拍三区| 久草视频在线资源| 亚洲成人免费在线视频| av资源一区| 久久青青草原| 丝袜美腿亚洲一区二区图片| 国产在线综合视频| 5858s免费视频成人| 四虎永久在线观看| 北条麻妃在线一区二区| 国内精品视频| 日本成人在线不卡| 麻豆极品一区二区三区| 在线观看成人动漫| 精品国产成人在线| 国产aⅴ一区二区三区| 欧美成人精品在线视频| 高潮久久久久久久久久久久久久| 国产深夜男女无套内射| 国产日韩精品视频一区| 国产又大又粗又长| 亚洲天堂一区二区三区| 另类一区二区| 男女激情免费视频| 国产清纯白嫩初高生在线观看91 | 久久这里只有精品99| 91精品国产自产在线丝袜啪| 男人天堂网视频| 国产精品免费人成网站| 无码人妻黑人中文字幕| 最近2019年日本中文免费字幕| 美女精品久久| 国产日韩一区二区在线观看| 中文字幕永久在线不卡| 六月婷婷综合网| 欧美黄色www| 日韩精品一区国产| 97视频在线免费播放| 亚洲欧美视频在线观看视频| 偷拍精品一区二区三区| 国产情人节一区| 国产一区二区三区的电影| 北条麻妃在线观看视频| 国产视频久久久久| 人在线成免费视频| 国产一区二区在线网站| 国内精品福利| 99re这里只有| 欧美精品在线一区二区| 高潮一区二区| 日本阿v视频在线观看|