DCloud_App_Array
DCloud_App_Array
  • 发布:2014-07-25 21:23
  • 更新:2021-05-26 11:09
  • 阅读:144710

iOS平台设置系统状态栏(通知栏、顶部状态栏)样式背景颜色或透明

分类:HTML5+

配置系统状态栏样式

iOS平台可支持对系统状态栏样式的配置,在应用manifest.json文件的plus->distribute->apple下添加UIStatusBarStyle进行控制,默认值为"UIStatusBarStyleDefault"。

| 值 | 样式 |
| :-------- | :-------- |
| UIStatusBarStyleDefault | 默认样式,iOS6及以下系统状态栏为黑底白字,iOS7及以上系统用于定义系统状态栏上文字颜色为黑字(适用于浅色背景) |
| UIStatusBarStyleBlackOpaque | 深色背景色样式,iOS6及以下系统状态栏为黑底白字,iOS7及以上系统用于定义系统状态栏上文字颜色为白色(适用于深色背景)|
| UIStatusBarStyleBlackTranslucent | iOS6及以下系统在启动界面为灰底白字,iOS7及以上系统与UIStatusBarStyleBlackOpaque效果一样 |

App云端打包设置系统状态栏样式操作方式:
双击应用的manifest.json文件,切换到“代码视图”,在plus->statusbar下添加style节点:

Ctrl+S保存,并提交App云端打包

设置系统状态栏背景颜色(iOS7及以上生效)

iOS平台可支持对系统状态栏背景颜色的配置,在应用manifest.json文件的plus->statusbar下添加background进行控制:
值为字符串类型,格式为"#RRGGBB"格式,如红色为"#FF0000";默认值为白色。

App云端打包设置系统状态栏背景颜色操作方式

双击应用的manifest.json文件,切换到“代码视图”,在statusbar节点下添加background节点:

Ctrl+S保存,并提交App云端打包

###运行期动态设置系统状态栏背景颜色

调用plus.navigator.setStatusBarBackground(rgb)动态修改系统状态栏背景颜色:
rgb为颜色字符串值,格式为#RRGGBB。

function setStatusbarRed(){  
		// 设置系统状态栏背景色为红色  
		plus.navigator.setStatusBarBackground("#FF0000");  
}

注:仅在iOS7.0及以上版本才支持设置系统状态栏背景色

设置状态栏透明并且页面内容通顶,参考http://ask.dcloud.net.cn/article/118

Android平台
Android平台自定义系统状态栏样式,参考状态栏大全-状态栏透明(沉浸式)、变色及全屏的区别

Android离线打包在AndroidManifest.xml中配置主Activity的皮肤(android:theme)来设置:

        <activity  
            android:name="io.dcloud.PandoraEntry"  
            android:configChanges="orientation|keyboardHidden|screenSize"  
            android:label="@string/app_name"  
            android:launchMode="singleTask"  
            android:screenOrientation="sensor"  
            android:windowSoftInputMode="adjustResize"  
            android:theme="主Activity的皮肤"  
            android:exported="true">  
            <intent-filter>  
                <action android:name="android.intent.action.MAIN"/>  
                <category android:name="android.intent.category.LAUNCHER"/>  
            </intent-filter>  
        </activity>

后续云端打包会封装常用的皮肤样式。参考:http://ask.dcloud.net.cn/docs/#http://ask.dcloud.net.cn/article/238

14 关注 分享
小杨 蔡繁荣 Snoopy HenryYong keny ___K Caven 小岳岳 suci Roko Trust 健健 2***@qq.com i***@163.com

要回复文章请先登录注册

Soonersky

Soonersky

设置状态栏字体颜色那三个值UIStatusBarStyleDefault,UIStatusBarStyleBlackOpaque,UIStatusBarStyleBlackTranslucent我全都试了一遍,没有任何效果,也没有任何区别,全都是白底黑字。IOS8.4.1,到底怎么处理啊?
2015-09-08 17:22
DCloud_App_Array

DCloud_App_Array (作者)

回复 一个大老鼠 :
真机运行无法看到此效果,需要提交App云端打包才能生效。
2015-06-15 11:59
一个大老鼠

一个大老鼠

这个设置只有打包之后才能生效吗?开发的时候不能测试?
2015-06-04 16:58
DCloud_App_Array

DCloud_App_Array (作者)

状态栏的文字颜色无法更改,在iOS7以上默认为白底黑字
将UIStatusBarStyle样式设置为UIStatusBarStyleBlackOpaque时文字颜色为白色
2014-11-13 17:44
超级菜鸟

超级菜鸟

同问~
2014-11-13 09:19
shine

shine

回复 DCloud_App_Array :
你好,再问一下状态栏设置深色后,状态栏文字的颜色是否有方法能设置为白色?
2014-11-13 02:39
shine

shine

回复 DCloud_App_Array :
我在manifest里设置了。同时在index页面用了setStatusBarBackground方法设置。其他页面切换过程中均未设置。
2014-11-13 00:25
DCloud_App_Array

DCloud_App_Array (作者)

回复 shine :
在manifest.json中配置的还是通过plus.navigator.setStatusBarBackground方法设置的?
页面切换的过程中有没有调用此方法设置了其它颜色?
2014-11-12 23:32
shine

shine

回复 DCloud_App_Array :
你好,设置后只在主页生效,一旦发生页面切换就会失效。请问该怎么解决?
2014-11-12 23:08
DCloud_App_Array

DCloud_App_Array (作者)

回复 shine :
可以设置,修改*Info.plist文件中的UIStatusBarStyle值即可。
如果要修改状态栏背景颜色,则修改StatusBarBackground字段值:
<key>StatusBarBackground</key>
<string>#FFFFFF</string>
2014-10-28 19:32