如何动态兼容沉浸式状态栏模式
来源:互联网 发布:约战竞技场出招优化 编辑:程序博客网 时间:2024/06/06 16:40
HBuilder6.6.1版本已经完全支持沉浸式状态栏,可以下载最新版本HelloH5应用体验。
各平台配置参考:
1. Android平台设置沉浸式状态栏显示效果
2. iOS平台设置沉浸式状态栏显示效果
由于各系统版本的限制,沉浸式状态栏对系统有要求(Android4.4及以上、iOS7.0及以上),如果要兼容各系统版本,需要动态判断当前环境是否支持沉浸式状态栏以及系统状态栏的高度:
使用5+API
- 判断当前环境是否支持沉浸式状态栏
plus.navigator.isImmersedStatusbar()
如果当前支持沉浸式状态栏则返回true,否则返回false。
- 获取当前系统状态栏高度
plus.navigator.getStatusbarHeight()
获取系统状态栏高度,Number类型。
其单位是逻辑像素值,即css中可直接使用的像素值,可能存在小数点。
实际用法参考HelloH5应用的“plus/doc.html”:
通过userAgent判断
5+API需要在plusready事件后才能调用,通常此事件在DOM加载渲染后才会触发,无法再渲染前根据不同的状态来设置css。
为了解决此问题,在支持5+API运行环境的userAgent中特定字段Html5Plus/1.0后添加Immersed标识,如下:
"Html5Plus/1.0 (Immersed/30)"
其中Immersed/后的30表示状态栏的高度,单位为逻辑像素值。
可以使用正则表达式进行获取:
immersed值如果大于0则表示当前环境支持沉浸式状态栏。
获取状态栏高度后,可以使用js动态修改DOM元素的css属性来设置样式,如设置界面头区域的顶部内边距为状态栏的高度(避免系统状态栏与界面头重叠),示例如下:
具体项目中可根据界面设计,灵活使用immersed值来动态适配各种效果。
完整用法可参考HelloH5应用中的“js/immersed.js”
通过 http://ask.dcloud.net.cn/article/422 copy过来的
- 如何动态兼容沉浸式状态栏模式
- 沉浸式状态栏上下兼容
- ToolBar沉浸式状态栏的兼容实现
- android状态栏一体化、沉浸式状态栏(兼容低版本)
- android状态栏一体化、沉浸式状态栏(兼容低版本)
- android状态栏一体化、沉浸式状态栏(兼容低版本)
- android状态栏一体化、沉浸式状态栏(兼容低版本)
- android状态栏一体化、沉浸式状态栏(兼容低版本)
- 状态栏、沉浸式状态栏
- android状态栏标题栏的沉浸式模式
- Android状态栏之沉浸式模式
- 真正的沉浸式模式状态栏
- Android状态栏沉浸模式
- [ Android SystemUi ] 动态修改系统状态栏颜色【沉浸式状态栏】
- Android5.0沉浸式状态栏,以及动态改变状态栏颜色
- Android动态显示和隐藏状态栏/实现沉浸式状态栏
- android如何实现沉浸式状态栏
- 如何轻松打造沉浸式状态栏
- POJ-1990 MooFest (树状数组 入门题)
- 彻底搞懂 PHP 变量结构体,多数文章观点不准确
- 实验二 线性表综合实验之《间接寻址》
- SQL高级查询——50句查询(含答案)
- matlab数组的创建
- 如何动态兼容沉浸式状态栏模式
- 整理--京东2017校招技术类选择题(一)
- 简述http协议
- hadoop异常: Wrong FS: hdfs://192.168.1.xx:9000/output, expected: file:///
- 加密解密(一)——预备知识(概念)
- 正则表达式30分钟入门教程
- Java Review
- 关于嵌套循环效率研究
- Java中字符串相加和字符串常量相加区别