@capacitor/status-bar
StatusBar API 提供了配置状态栏样式的方法,以及显示或隐藏状态栏的方法。
安装
npm install @capacitor/status-bar
npx cap sync
iOS 注意
此插件要求在 Info.plist
中将“基于视图控制器的状态栏外观”(UIViewControllerBasedStatusBarAppearance
) 设置为 YES
。有关帮助,请阅读有关 配置 iOS 的内容。
状态栏可见性默认设置为可见,样式默认设置为 Style.Default
。您可以通过在 Info.plist
中添加 UIStatusBarHidden
和/或 UIStatusBarStyle
来更改这些默认值。
setBackgroundColor
和 setOverlaysWebView
目前在 iOS 设备上不支持。
示例
import { StatusBar, Style } from '@capacitor/status-bar';
// iOS only
window.addEventListener('statusTap', function () {
console.log('statusbar tapped');
});
// Display content under transparent status bar (Android only)
StatusBar.setOverlaysWebView({ overlay: true });
const setStatusBarStyleDark = async () => {
await StatusBar.setStyle({ style: Style.Dark });
};
const setStatusBarStyleLight = async () => {
await StatusBar.setStyle({ style: Style.Light });
};
const hideStatusBar = async () => {
await StatusBar.hide();
};
const showStatusBar = async () => {
await StatusBar.show();
};
API
setStyle(...)
setStyle(options: StyleOptions) => Promise<void>
设置状态栏的当前样式。
参数 | 类型 |
---|---|
options | StyleOptions |
自 1.0.0
setBackgroundColor(...)
setBackgroundColor(options: BackgroundColorOptions) => Promise<void>
设置状态栏的背景颜色。
此方法仅在 Android 上受支持。
参数 | 类型 |
---|---|
options | BackgroundColorOptions |
自 1.0.0
show(...)
show(options?: AnimationOptions | undefined) => Promise<void>
显示状态栏。在 iOS 上,如果状态栏最初处于隐藏状态,并且初始样式设置为 UIStatusBarStyleLightContent
,则第一次调用 show 可能会在动画中出现故障,显示文本为深色,然后过渡到浅色。建议在第一次调用时使用 Animation.None
作为动画。
参数 | 类型 |
---|---|
options | AnimationOptions |
自 1.0.0
hide(...)
hide(options?: AnimationOptions | undefined) => Promise<void>
隐藏状态栏。
参数 | 类型 |
---|---|
options | AnimationOptions |
自 1.0.0
getInfo()
getInfo() => Promise<StatusBarInfo>
获取有关状态栏当前状态的信息。
**返回:** Promise<StatusBarInfo>
自 1.0.0
setOverlaysWebView(...)
setOverlaysWebView(options: SetOverlaysWebViewOptions) => Promise<void>
设置状态栏是否应覆盖 webview 以允许使用其下方的空间。
此方法仅在 Android 上受支持。
参数 | 类型 |
---|---|
options | SetOverlaysWebViewOptions |
自 1.0.0
接口
StyleOptions
BackgroundColorOptions
属性 | 类型 | 描述 | 自 |
---|---|---|---|
color | string | 设置状态栏颜色使用的十六进制颜色。此选项仅在 Android 上受支持。 | 1.0.0 |
AnimationOptions
属性 | 类型 | 描述 | 默认 | 自 |
---|---|---|---|---|
animation | Animation | 显示或隐藏时使用的状态栏动画类型。此选项仅在 iOS 上受支持。 | Animation.Fade | 1.0.0 |
StatusBarInfo
属性 | 类型 | 描述 | 自 |
---|---|---|---|
visible | boolean | 状态栏是否可见。 | 1.0.0 |
style | Style | 当前状态栏样式。 | 1.0.0 |
color | string | 当前状态栏颜色。此选项仅在 Android 上受支持。 | 1.0.0 |
overlays | boolean | 状态栏是否被覆盖。此选项仅在 Android 上受支持。 | 1.0.0 |
SetOverlaysWebViewOptions
属性 | 类型 | 描述 | 自 |
---|---|---|---|
overlay | boolean | 是否覆盖状态栏。 | 1.0.0 |
枚举
Style
成员 | 值 | 描述 | 自 |
---|---|---|---|
Dark | 'DARK' | 深色背景上的浅色文本。 | 1.0.0 |
Light | 'LIGHT' | 浅色背景上的深色文本。 | 1.0.0 |
默认 | 'DEFAULT' | 样式基于设备外观。如果设备使用深色模式,则状态栏文本将为浅色。如果设备使用浅色模式,则状态栏文本将为深色。在 Android 上,默认值将是应用程序启动时使用的值。 | 1.0.0 |
Animation
成员 | 值 | 描述 | 自 |
---|---|---|---|
None | 'NONE' | 显示/隐藏期间没有动画。 | 1.0.0 |
Slide | 'SLIDE' | 显示/隐藏期间的滑动动画。它在 iOS 15+ 上不起作用。 | 1.0.0 |
Fade | 'FADE' | 显示/隐藏期间的淡入淡出动画。 | 1.0.0 |