何爲沉浸式?css
沉浸式就是app的頭部和狀態欄和何爲一體的,webview即爲整個手機的高度html
何爲狀態欄?html5
狀態欄就是手機頂部,顯示時間電量那一行ios
除此還有劉海屏,水滴屏,挖孔屏,全面屏,非劉海屏,不一樣手機狀態欄高度又不太同樣,須要咱們去適配,有一個段子說,若是看到那個手機適配有問題,趕忙把那個手機藏起來,不要讓測試發現了。web
咱們用HBuilder建立的應用默認是不開啓沉浸式的,須要咱們手動以下配置開啓。正則表達式
打開應用的manifest.json文件,切換到代碼視圖,在plus -> statusbar 下添加immersed節點並設置值爲true。json
"plus": { "statusbar": { "immersed": true } }
因爲各系統版本的限制,沉浸式狀態欄對系統有要求(Android4.4及以上、iOS7.0及以上,這部分手機應該早已淘汰),若是要兼容各系統版本,須要動態判斷當前環境是否支持沉浸式狀態欄以及系統狀態欄的高度:app
使用5+API測試
可是5+API須要在plusready事件後才能調用,一般此事件在DOM加載渲染後纔會觸發,沒法再渲染前根據不一樣的狀態來設置css。因此會致使位置的一個閃動。ui
爲了解決此問題,在支持5+API運行環境的userAgent中特定字段Html5Plus/1.0後添加Immersed標識,以下:
"Html5Plus/1.0 (Immersed/30)"
其中Immersed/後的30表示狀態欄的高度,單位爲邏輯像素值。
可使用正則表達式進行獲取: