{"_id":"@capacitor-ohos/status-bar","_rev":"2-a789325f6eecdf7b64e254f480a3ff33","name":"@capacitor-ohos/status-bar","dist-tags":{"latest":"8.0.2"},"versions":{"8.0.1":{"name":"@capacitor-ohos/status-bar","version":"8.0.1","keywords":["capacitor","plugin","native"],"author":{"url":"Group","name":"Huawei Device Co., Ltd and iSoftStone Information Technology"},"license":"MIT","_id":"@capacitor-ohos/status-bar@8.0.1","maintainers":[{"name":"luqi_tan","email":"295099422@qq.com"}],"bugs":{"url":"https://gitcode.com/CPF-Ionic/capacitor-status-bar/issues"},"dist":{"shasum":"42bcf52bd53a265e0e8fd1b3c833540ee34f1839","tarball":"https://registry.npmjs.org/@capacitor-ohos/status-bar/-/status-bar-8.0.1.tgz","fileCount":11,"integrity":"sha512-eD9gcDApqPaTha2fChh62mQcAC2cFVQiBp4BjT3Da4joUtrWCGGXV+kCm+Yffc71+7Tj9wK5Jou+W3Pppv+BJA==","signatures":[{"sig":"MEYCIQDnYr2PJRFqQRzKgCVDGbIGkk+y4SZqiPDGqyE+O33LDgIhAME9szyU0ZxI7jhHkDbP2ue/tYr4lQLhf8+1XkEg/QJf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47254},"gitHead":"9fbcc7e23df7f3dab53815023531b1905ad4dcc6","_npmUser":{"name":"luqi_tan","email":"295099422@qq.com"},"capacitor":{"id":"@capacitor/status-bar","platforms":["openharmony"]},"repository":{"url":"gitcode:CPF-Ionic/capacitor-status-bar","type":"git"},"_npmVersion":"10.5.1","description":"The StatusBar API Provides methods for configuring the style of the Status Bar, along with showing or hiding it.","directories":{},"_nodeVersion":"22.0.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/status-bar_8.0.1_1777542987614_0.7597767882245208","host":"s3://npm-registry-packages-npm-production"}},"8.0.2":{"name":"@capacitor-ohos/status-bar","version":"8.0.2","description":"The StatusBar API Provides methods for configuring the style of the Status Bar, along with showing or hiding it.","capacitor":{"id":"@capacitor/status-bar","platforms":["openharmony"]},"repository":{"type":"git","url":"gitcode:CPF-Ionic/capacitor-status-bar"},"bugs":{"url":"https://gitcode.com/CPF-Ionic/capacitor-status-bar/issues"},"keywords":["capacitor","plugin","native"],"author":{"name":"Huawei Device Co., Ltd and iSoftStone Information Technology","url":"Group"},"license":"MIT","_id":"@capacitor-ohos/status-bar@8.0.2","gitHead":"3494445a27c0da63e01f0a9a860c77ee9f29f4e9","_nodeVersion":"22.0.0","_npmVersion":"10.5.1","dist":{"integrity":"sha512-xvrrkk0v1eqwiLJ6ulG9HNF1JeNE96I7mK7ORzTAnmepNiU6jnzgKAqXxCy8NFb5Nf1WlMrFrDGD9ZnyTekQmQ==","shasum":"c81fad6b964006ce02480e4392c4d9308854749c","tarball":"https://registry.npmjs.org/@capacitor-ohos/status-bar/-/status-bar-8.0.2.tgz","fileCount":11,"unpackedSize":47278,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICf/g50N716pVLR5u6KiyVj82Cl+F6ne6lUnELQTnFMAAiEApObez52qhwNTsKACyXVakaxD7Qa7tnmCPyEFEK0EUdg="}]},"_npmUser":{"name":"luqi_tan","email":"295099422@qq.com"},"directories":{},"maintainers":[{"name":"luqi_tan","email":"295099422@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/status-bar_8.0.2_1784793210617_0.8194552605218199"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-30T09:56:27.474Z","modified":"2026-07-23T07:53:31.029Z","8.0.1":"2026-04-30T09:56:27.747Z","8.0.2":"2026-07-23T07:53:30.752Z"},"bugs":{"url":"https://gitcode.com/CPF-Ionic/capacitor-status-bar/issues"},"author":{"name":"Huawei Device Co., Ltd and iSoftStone Information Technology","url":"Group"},"license":"MIT","keywords":["capacitor","plugin","native"],"repository":{"type":"git","url":"gitcode:CPF-Ionic/capacitor-status-bar"},"description":"The StatusBar API Provides methods for configuring the style of the Status Bar, along with showing or hiding it.","maintainers":[{"name":"luqi_tan","email":"295099422@qq.com"}],"readme":"# <center>@capacitor/status-bar</center>\r\n[![zh-CN](https://img.shields.io/badge/lang-中文-blue.svg)](README.md)\r\n[![en](https://img.shields.io/badge/lang-English-blue.svg)](README.en.md)\r\n\r\n本项目基于 [@capacitor/status-bar@8.0.0](https://www.npmjs.com/package/@capacitor/status-bar) 开发。\r\n\r\n## 简介\r\n\r\n`@capacitor/status-bar` 是 capacitor 生态系统中的核心插件，StatusBar API 提供了配置状态栏样式以及显示或隐藏状态栏的方法，为跨平台应用开发提供设备差异化适配能力，兼容 capacitor 的 Android、iOS 等主流移动平台及浏览器环境，本文档主要说明在 OpenHarmony 系统中的使用。\r\n\r\n该插件可以控制状态栏的显示隐藏、样式风格（深色/浅色）、背景颜色，帮助开发者统一应用状态栏样式，提升应用整体视觉效果。\r\n\r\n## 支持平台\r\n\r\n- **OpenHarmony**：5.0+\r\n\r\n## 下载安装\r\n\r\n通过命令行或手动引入即可快速安装插件，支持从npm仓库获取。\r\n\r\n### 命令行安装（推荐）\r\n\r\n安装hionic CLI：\r\n\r\n```bash\r\nnpm install -g hionic\r\n```\r\n\r\n以下两种方式中**任选其一**即可，无需重复操作：\r\n\r\nnpm安装：\r\n\r\n```bash\r\n# 安装插件\r\nnpm install @capacitor/status-bar\r\n\r\n# 同步插件\r\nhionic sync openharmony\r\n```\r\n\r\nhionic CLI安装：\r\n\r\n```bash\r\nhionic plugin add @capacitor/status-bar\r\n```\r\n\r\n### 手动引入安装\r\n\r\n根据插件源码中 `plugin.xml` 配置在项目中引入插件：\r\n\r\n#### 1. 添加插件配置\r\n\r\n根据 `plugin.xml` 的 `config-json` 项，通过 `target` 字段找到 `entry` 模块中 `capacitor.plugins.json` 文件，并根据 `param` 标签添加配置如下：\r\n\r\n```json\r\n[\r\n  {\r\n    \"pkg\": \"@capacitor/status-bar\",\r\n    \"classpath\": \"StatusBar\"\r\n  }\r\n]\r\n```\r\n\r\n#### 2. 修改 CMake 配置\r\n\r\n根据 `plugin.xml` 的 `CMakeLists` 项，通过 `modules-name` 字段找到模块 capacitor，路径为 `target` 字段的 `CMakeLists.txt` 文件，并根据 `param` 标签添加 `add_subdirectory` 和 `target_link_libraries` 如下：\r\n\r\n```cmake\r\n#START_ADD_SUBDIRECTORY\r\n// ...\r\nadd_subdirectory(StatusBar)\r\n// ...\r\n#END_ADD_SUBDIRECTORY\r\n\r\n// ...\r\n\r\ntarget_link_libraries(capacitor PUBLIC\r\n  \"-Wl,--whole-archive\"\r\n  // ...\r\n  StatusBar\r\n  // ...\r\n  \"-Wl,--no-whole-archive\"\r\n)\r\n```\r\n\r\n#### 3. 复制源码文件\r\n\r\n根据 `plugin.xml` 的 `source-file` 项，根据 `src` 字段找到需要复制的文件，并根据 `modules-name` 字段和 `target-dir` 字段找到文件复制的具体模块和目录：\r\n\r\n将源码中 src/main/cpp/StatusBar 目录下的 StatusBar.h、StatusBar.cpp、CMakeLists.txt 文件引入到 capacitor 模块中 src/main/cpp/StatusBar 目录下。\r\n\r\n将源码中 src/main/ets/components/StatusBar 目录下的 StatusBar.ets、StatusBarInfo 文件引入到 capacitor 模块中 src/main/ets/components/StatusBar 目录下。\r\n\r\n#### 4. 添加 ArkTS 配置\r\n\r\n在 capacitor 模块的 `build-profile.json5` 文件中，`buildOption/arkOptions/runtimeOnly/sources` 配置项数组中加入步骤 3 中拷贝的 ets 文件路径：\r\n\r\n```json\r\n\"buildOption\": {\r\n  // ...\r\n  \"arkOptions\": {\r\n    \"runtimeOnly\": [\r\n      // ...\r\n      \"./src/main/ets/components/StatusBar/StatusBar.ets\"\r\n      // ...\r\n    ]\r\n  }\r\n}\r\n```\r\n\r\n## 卸载\r\n\r\n```bash\r\n# 卸载 status-bar 插件\r\nhionic plugin remove @capacitor/status-bar\r\n```\r\n\r\n## 配置\r\n\r\n在 `capacitor.config.json` 中可以配置默认状态栏样式：\r\n\r\n```json\r\n{\r\n  \"plugins\": {\r\n     \"StatusBar\": {\r\n        \"overlaysWebView\": true,\r\n        \"style\": \"DARK\",\r\n        \"backgroundColor\": \"#ffffff\"\r\n     }\r\n  }\r\n}\r\n```\r\n\r\n| 配置项 | 类型 | 描述 |\r\n|---------|------|------|\r\n| **`overlaysWebView`** | `boolean` | 状态栏是否覆盖 WebView |\r\n| **`style`** | `string` | 状态栏文本的样式 |\r\n| **`backgroundColor`** | `string` | 状态栏背景颜色的十六进制格式，`#RRGGBB`。如果 `overlaysWebView` 为 `true` 则不生效 |\r\n\r\n## 约束与限制\r\n\r\n### 兼容性\r\n\r\n在以下版本中已测试通过：\r\n\r\n1. SDK: 5.0.5(17); IDE: DevEco Studio: 6.0.0; ROM: 5.1.0.150;\r\n\r\n### 权限要求\r\n\r\n不涉及特殊权限。\r\n\r\n## 使用示例\r\n\r\n### 基础示例：切换状态栏样式\r\n\r\n```javascript\r\nimport { StatusBar, Style } from '@capacitor/status-bar';\r\n\r\nconst toggleStyle = async (currentStyle) => {\r\n  try {\r\n    // 切换状态栏样式（深色/浅色）\r\n    const newStyle = currentStyle.value === Style.Dark ? Style.Light : Style.Dark;\r\n    await StatusBar.setStyle({ style: newStyle });\r\n    \r\n    console.log(`状态栏样式已切换为: ${newStyle}`);\r\n  } catch (error) {\r\n    console.error('设置状态栏样式失败:', error);\r\n  }\r\n};\r\n```\r\n\r\n### 基础示例：设置状态栏背景色\r\n\r\n```javascript\r\nimport { StatusBar } from '@capacitor/status-bar';\r\n\r\nconst setRandomBackgroundColor = async () => {\r\n  try {\r\n    const colors = ['#FF5733', '#33FF57', '#3357FF', '#F333FF', '#33FFF5'];\r\n    const randomColor = colors[Math.floor(Math.random() * colors.length)];\r\n    \r\n    await StatusBar.setBackgroundColor({ color: randomColor });\r\n    console.log(`状态栏背景颜色已设置为: ${randomColor}`);\r\n  } catch (error) {\r\n    console.error('设置状态栏背景颜色失败:', error);\r\n  }\r\n};\r\n```\r\n\r\n### 基础示例：显示/隐藏状态栏\r\n\r\n```javascript\r\nimport { StatusBar } from '@capacitor/status-bar';\r\n\r\nconst toggleVisibility = async (currentVisible) => {\r\n  try {\r\n    if (currentVisible) {\r\n      await StatusBar.hide();\r\n      console.log('状态栏已隐藏');\r\n    } else {\r\n      await StatusBar.show();\r\n      console.log('状态栏已显示');\r\n    }\r\n  } catch (error) {\r\n    console.error('切换状态栏显示失败:', error);\r\n  }\r\n};\r\n```\r\n\r\n## 使用说明\r\n\r\n### 接口方法\r\n\r\n| 方法名 | 返回类型 | 描述 |\r\n|----------------------------------------------------------|--------------------------|-------------------------------------|\r\n| setStyle(options: [StyleOptions](#styleoptions)) | Promise&lt;void&gt; | 设置状态栏的当前样式 |\r\n| setBackgroundColor(options: [BackgroundColorOptions](#backgroundcoloroptions)) | Promise&lt;void&gt; | 设置状态栏的背景色 |\r\n| show() | Promise&lt;void&gt; | 显示状态栏 |\r\n| hide() | Promise&lt;void&gt; | 隐藏状态栏 |\r\n| getInfo() | Promise&lt;[StatusBarInfo](#statusbarinfo)&gt; | 获取关于状态栏当前状态的信息 |\r\n| setOverlaysWebView(options: [SetOverlaysWebViewOptions](#setoverlayswebviewoptions)) | Promise&lt;void&gt; | 设置状态栏是否应覆盖在 WebView 之上，以允许使用其下方的空间 |\r\n\r\n### 数据结构\r\n\r\n#### StyleOptions\r\n\r\n| 属性         | 类型     | 描述 |\r\n| ------------ | -------- |-------------|\r\n| **`style`**    | [Style](#style) | 状态栏文本的样式   |\r\n\r\n#### BackgroundColorOptions\r\n\r\n| 属性         | 类型     | 描述 |\r\n| ------------ | -------- | ------------------------------------------------------------ |\r\n| **`color`**  | string | 用于设置状态栏颜色的十六进制颜色值 |\r\n\r\n#### StatusBarInfo\r\n\r\n| 属性          | 类型     | 描述  |\r\n| ------------  | -------- |--------------|\r\n| **`visible`** | boolean | 状态栏当前是否处于可见状态 |\r\n| **`style`**   | [Style](#style) | 当前的状态栏样式    |\r\n| **`color`**   | string | 当前的状态栏颜色    |\r\n| **`overlays`**| boolean | 状态栏是否处于覆盖模式 |\r\n\r\n#### Style\r\n\r\n样式枚举：\r\n\r\n| 成员          | 值         | 描述   |\r\n| ------------  | ---------- |---------------|\r\n| **`Dark`**    | `DARK`   | 用于深色背景的浅色文本  |\r\n| **`Light`**   | `LIGHT`  | 用于浅色背景的深色文本  |\r\n| **`Default`** | `DEFAULT`| 样式取决于设备的外观设置 |\r\n\r\n#### SetOverlaysWebViewOptions\r\n\r\n| 属性         | 类型     | 描述 |\r\n| ------------ | -------- |-------------|\r\n| **`overlay`**    | boolean | 状态栏是否覆盖 WebView   |\r\n\r\n## 目录结构\r\n\r\n```\r\n|---- 项目根目录\r\n|     |---- src\r\n|           |---- main\r\n|                 |---- cpp\r\n|                       |---- StatusBar   # 插件核心 C++ 实现\r\n|                             |---- StatusBar.cpp\r\n|                             |---- StatusBar.h\r\n|                             |---- CMakeLists.txt\r\n|                 |---- ets\r\n|                       |---- components\r\n|                             |---- StatusBar   # ArkTS 组件实现\r\n|                                   |---- StatusBar.ets\r\n|                                   |---- StatusBarInfo.ets\r\n|     |---- README.md                # 说明文档\r\n|     |---- package.json             # npm 配置文件\r\n|     |---- plugin.xml               # capacitor 插件配置\r\n|     |---- LICENSE                  # 许可证文件\r\n```\r\n\r\n## 贡献代码\r\n\r\n使用过程中发现任何问题都可以提 [Issue](https://gitcode.com/CPF-Ionic/capacitor-status-bar/issues)，当然，也非常欢迎发 [PR](https://gitcode.com/CPF-Ionic/capacitor-status-bar/pulls) 共建。\r\n\r\n## 许可证\r\n\r\n本插件基于 **MIT License** 开源，详见 [LICENSE](./LICENSE) 文件。\r\n","readmeFilename":"README.md"}