上篇文章實(shí)現(xiàn)了iOS原生側(cè)滑返回功能后,會(huì)有一個(gè)問(wèn)題:側(cè)滑的時(shí)候,狀態(tài)欄的顏色不會(huì)漸變,頂部出現(xiàn)一個(gè)白色的條非常不美觀,如下圖所示:
原創(chuàng)文章,歡迎轉(zhuǎn)載.轉(zhuǎn)載請(qǐng)注明出處: http://www.itdecent.cn/p/90f910db9545

分析原因:
由于我們項(xiàng)目的導(dǎo)航欄統(tǒng)一都是純白色的,不側(cè)滑的時(shí)候感覺(jué)挺完美。嘗試設(shè)置為其他顏色就會(huì)發(fā)現(xiàn)問(wèn)題,如下圖:

狀態(tài)欄顏色默認(rèn)是純白色的,即使使用下面的代碼:
mui.plusReady(function() {
plus.navigator.setStatusBarStyle("light");//設(shè)置狀態(tài)欄字體為白色
plus.navigator.setStatusBarBackground("#ea6f5a");//設(shè)置狀態(tài)欄背景顏色和導(dǎo)航欄背景色一致
});
將態(tài)欄的顏色設(shè)置為和導(dǎo)航欄的一樣,側(cè)滑的時(shí)候也會(huì)出現(xiàn)和導(dǎo)航欄顏色一樣的條:

總結(jié):MUI默認(rèn)將狀態(tài)欄和導(dǎo)航欄分離,側(cè)滑時(shí)只漸變導(dǎo)航欄,而此時(shí)的狀態(tài)欄并不屬于導(dǎo)航欄,就出現(xiàn)了上面的問(wèn)題。解決的辦法就是將狀態(tài)欄和導(dǎo)航欄融為一體,即設(shè)置沉浸式狀態(tài)欄。
設(shè)置沉浸式狀態(tài)欄
參考manifest配置指南:雙擊項(xiàng)目中的manifest.json文件找到"plus"為其添加如下內(nèi)容:
"statusbar": {
"immersed": "supportedDevice",//沉浸式狀態(tài)欄情況(none-非沉浸式, supportedDevice-在支持沉浸式的設(shè)備上設(shè)置為沉浸式,suggestedDevice-在建議的設(shè)備上設(shè)置為沉浸式)
"style": "light" //設(shè)置狀態(tài)欄字體顏色(light-白色,dark-黑色)
}
設(shè)置為之后的效果如下:

注意:上面的效果是使用iOS原生導(dǎo)航欄下的效果,如果使用MUI的導(dǎo)航欄會(huì)出現(xiàn)高度只有44的問(wèn)題,安卓和iOS都會(huì)有這個(gè)問(wèn)題,正常導(dǎo)航欄的高度是64,除了iPhone X系列手機(jī)為88之外(這里所說(shuō)的導(dǎo)航欄包括狀態(tài)欄和標(biāo)題欄)。解決這個(gè)問(wèn)題可以參考我的下一篇文章:MUI-設(shè)置沉浸式狀態(tài)欄后MUI導(dǎo)航欄的高度問(wèn)題