@capacitor/status-bar
StatusBar API 提供配置状态栏样式以及显示或隐藏状态栏的方法。
安装
npm install @capacitor/status-bar
npx cap sync
iOS 注意事项
此插件要求将 "View controller-based status bar appearance"(UIViewControllerBasedStatusBarAppearance
)在 Info.plist
中设置为 YES
。有关帮助,请阅读 配置 iOS。
状态栏可见性默认为可见,样式默认为 Style.Default
。您可以通过在 Info.plist
中添加 UIStatusBarHidden
和/或 UIStatusBarStyle
来更改这些默认值。
示例
import { StatusBar, Style } from '@capacitor/status-bar';
// 仅 iOS
window.addEventListener('statusTap', function () {
console.log('状态栏被点击');
});
// 在透明状态栏下显示内容
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();
};
配置
以下配置值可用:
属性 | 类型 | 描述 | 默认值 | 自版本 |
---|---|---|---|---|
overlaysWebView | boolean | 状态栏是否覆盖在 WebView 上。对于面向 Android 15 的应用程序,除非在应用程序布局文件中添加了 windowOptOutEdgeToEdgeEnforcement 属性,否则此属性无效。否则,应用程序始终假定 overlays 为 true。更多详情请参阅 https://developer.android.com/reference/android/R.attr#windowOptOutEdgeToEdgeEnforcement | true | 1.0.0 |
style | string | 状态栏文本的样式。 | default | 1.0.0 |
backgroundColor | string | 状态栏背景颜色,十六进制格式 #RRGGBB。如果 overlaysWebView 为 true,则无效。 | #000000 | 1.0.0 |
示例
在 capacitor.config.json
中:
{
"plugins": {
"StatusBar": {
"overlaysWebView": false,
"style": "DARK",
"backgroundColor": "#ffffffff"
}
}
}
在 capacitor.config.ts
中:
/// <reference types="@capacitor/status-bar" />
import { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = {
plugins: {
StatusBar: {
overlaysWebView: false,
style: 'DARK',
backgroundColor: '#ffffffff',
},
},
};
export default config;
API
setStyle(...)
setStyle(options: StyleOptions) => Promise<void>
设置状态栏的当前样式。
参数 | 类型 |
---|---|
options |
|
自版本: 1.0.0
setBackgroundColor(...)
setBackgroundColor(options: BackgroundColorOptions) => Promise<void>
设置状态栏的背景颜色。
参数 | 类型 |
---|---|
options |
|
自版本: 1.0.0
show(...)
show(options?: AnimationOptions | undefined) => Promise<void>
显示状态栏。
在 iOS 上,如果状态栏初始处于隐藏状态且初始样式设置为 UIStatusBarStyleLightContent
,首次调用 show 时动画可能会出现文本先显示为深色然后过渡到浅色的故障。建议在首次调用时使用 Animation.None
作为动 画选项。
参数 | 类型 |
---|---|
options |
|
自版本: 1.0.0
hide(...)
hide(options?: AnimationOptions | undefined) => Promise<void>
隐藏状态栏。
参数 | 类型 |
---|---|
options |
|
自版本: 1.0.0
getInfo()
getInfo() => Promise<StatusBarInfo>
获取状态栏当前状态的信息。
返回值:
Promise<StatusBarInfo>
自版本: 1.0.0
setOverlaysWebView(...)
setOverlaysWebView(options: SetOverlaysWebViewOptions) => Promise<void>
设置状态栏是否应覆盖 WebView,以便使用其下方的空间。
参数 | 类型 |
---|---|
options |
|
自版本: 1.0.0