{"_id":"@capacitor-ohos/privacy-screen","_rev":"2-2373f39124cec439e1f9468104c17566","name":"@capacitor-ohos/privacy-screen","dist-tags":{"latest":"2.0.1"},"versions":{"2.0.0":{"name":"@capacitor-ohos/privacy-screen","version":"2.0.0","keywords":["capacitor","plugin","native"],"author":{"url":"Group","name":"Huawei Device Co., Ltd and iSoftStone Information Technology"},"license":"MIT","_id":"@capacitor-ohos/privacy-screen@2.0.0","maintainers":[{"name":"luqi_tan","email":"295099422@qq.com"}],"bugs":{"url":"https://gitcode.com/CPF-Ionic/capacitor-privacy-screen/issues"},"dist":{"shasum":"1b2f8ca6c941bbadda6f6995c9cdeecdc6ce67e3","tarball":"https://registry.npmjs.org/@capacitor-ohos/privacy-screen/-/privacy-screen-2.0.0.tgz","fileCount":11,"integrity":"sha512-iL0UOOaRIAQj17prAPxUpBseM7D0Zkg3tcUWOI8LnYnVZSPFlEVFfK9BSuurdGYICPQkArmwoiwOdddXgFjUdg==","signatures":[{"sig":"MEYCIQC4xRNc6Fl6gdjwHMVSFUkAG7/l0s41AIFXi6oMTUNvtQIhAMU5XHB8hugoII6LIAYBvvejKsnlDOH8KpY97qGgGSTB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41769},"gitHead":"a2de5cc7f9d9ff130a82555111eb31fd883f6d0f","_npmUser":{"name":"luqi_tan","email":"295099422@qq.com"},"capacitor":{"id":"@capacitor/privacy-screen","platforms":["openharmony"]},"repository":{"url":"gitcode:CPF-Ionic/capacitor-privacy-screen","type":"git"},"_npmVersion":"10.5.1","description":"The Privacy Screen plugin provides functionality to prevent sensitive information from being visible in app switchers and when leaving an app.","directories":{},"_nodeVersion":"22.0.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/privacy-screen_2.0.0_1777546930882_0.9259435642845062","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@capacitor-ohos/privacy-screen","version":"2.0.1","description":"The Privacy Screen plugin provides functionality to prevent sensitive information from being visible in app switchers and when leaving an app.","capacitor":{"id":"@capacitor/privacy-screen","platforms":["openharmony"]},"repository":{"type":"git","url":"gitcode:CPF-Ionic/capacitor-privacy-screen"},"bugs":{"url":"https://gitcode.com/CPF-Ionic/capacitor-privacy-screen/issues"},"keywords":["capacitor","plugin","native"],"author":{"name":"Huawei Device Co., Ltd and iSoftStone Information Technology","url":"Group"},"license":"MIT","_id":"@capacitor-ohos/privacy-screen@2.0.1","gitHead":"6480fbe2238123390fb69720f29525130a3b6fd0","_nodeVersion":"22.0.0","_npmVersion":"10.5.1","dist":{"integrity":"sha512-B3+jl9TEw9dy50DBZw3BqTOi/DJIvihcZpgwr7mHPYRF/3z625HF3p4VfPDgsWNFd210O09nuIZhfxt87LjKUQ==","shasum":"e25d24fb3b41c0555ba438ccaefbf0cccdd5c8f7","tarball":"https://registry.npmjs.org/@capacitor-ohos/privacy-screen/-/privacy-screen-2.0.1.tgz","fileCount":11,"unpackedSize":41920,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCSFeZHSDOMJxWOewXBW0kWz9nX1pvpuqvq4dGhu+EVSgIgTNtiEe8tSnc9iM7Ci4LBnQlo75yfdAD3zsV/43WaQqU="}]},"_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/privacy-screen_2.0.1_1784796913344_0.9789338077879712"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-30T11:02:10.792Z","modified":"2026-07-23T08:55:13.673Z","2.0.0":"2026-04-30T11:02:11.033Z","2.0.1":"2026-07-23T08:55:13.494Z"},"bugs":{"url":"https://gitcode.com/CPF-Ionic/capacitor-privacy-screen/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-privacy-screen"},"description":"The Privacy Screen plugin provides functionality to prevent sensitive information from being visible in app switchers and when leaving an app.","maintainers":[{"name":"luqi_tan","email":"295099422@qq.com"}],"readme":"# <center>`@capacitor/privacy-screen`</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/privacy-screen@2.0.0](https://www.npmjs.com/package/@capacitor/privacy-screen) 开发。\r\n\r\n## 简介\r\n\r\n隐私屏幕保护 API，可在应用进入后台时隐藏敏感内容，防止被查看。本插件是 capacitor 生态系统中的核心插件，为跨平台应用开发提供设备差异化适配能力，兼容 capacitor 的 Android、iOS 等主流移动平台及浏览器环境中使用，本文档仅说明在 OpenHarmony 系统中的使用情况。\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/privacy-screen\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/privacy-screen\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` 项，找到 `entry` 模块中 `capacitor.plugins.json` 文件，并根据 `param` 标签添加配置如下：\r\n\r\n```json\r\n{\r\n  \"pkg\": \"@capacitor/privacy-screen\",\r\n  \"classpath\": \"PrivacyScreen\"\r\n}\r\n```\r\n\r\n#### 2. 修改 CMake 配置\r\n\r\n根据 `plugin.xml` 的 `CMakeLists` 项，找到 `capacitor` 模块，路径为 `target` 字段的 `CMakeLists.txt` 文件，并添加 `add_subdirectory` 和 `target_link_libraries` 如下：\r\n\r\n```cmake\r\n// ...\r\nadd_subdirectory(PrivacyScreen)\r\n// ...\r\n\r\n// ...\r\ntarget_link_libraries(capacitor PUBLIC\r\n  \"-Wl,--whole-archive\"\r\n  // ...\r\n  PrivacyScreen\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` 字段找到需要复制的文件，并复制到对应的目录：\r\n\r\n将插件源码中 src/main/cpp/PrivacyScreen 目录下的 PrivacyScreen.h、PrivacyScreen.cpp、CMakeLists.txt 文件引入到 capacitor 模块中 src/main/cpp/PrivacyScreen 目录下。\r\n\r\n将源码中 src/main/ets/components/PrivacyScreen 目录下的 PrivacyScreen.ets、PrivacyScreenDialog.ets 文件引入到 capacitor 模块中 src/main/ets/components/PrivacyScreen 目录下。\r\n\r\n在 `capacitor` 模块的 `build-profile.json5` 文件中，`buildOption/arkOptions/runtimeOnly/sources` 配置项数组中加入拷贝的 ets 文件路径：\r\n\r\n```json\r\n\"buildOption\": {\r\n  \"arkOptions\": {\r\n    \"runtimeOnly\": {\r\n      \"sources\": [\r\n        \"./src/main/ets/components/PrivacyScreen/PrivacyScreen.ets\"\r\n      ]\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n## 卸载\r\n\r\n```bash\r\n# 卸载 privacy-screen 插件\r\nhionic plugin remove @capacitor/privacy-screen\r\n```\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\nOpenHarmony 需要申请隐私窗口权限，在主工程的 `module.json5` 的 `requestPermissions` 添加 `ohos.permission.PRIVACY_WINDOW` 权限，示例如下：\r\n\r\n```json\r\n{\r\n  \"name\": \"ohos.permission.PRIVACY_WINDOW\",\r\n  \"reason\": \"$string:privacy_window\",\r\n  \"usedScene\": {\r\n    \"abilities\": [\r\n      \"EntryAbility\"\r\n    ],\r\n    \"when\": \"always\"\r\n  }\r\n}\r\n```\r\n\r\n更多权限说明参考：[申请应用权限](https://docs.openharmony.cn/pages/v6.0/zh-cn/application-dev/security/AccessToken/app-permissions.md)。\r\n\r\n## 使用示例\r\n\r\n### 基础示例：开启关闭隐私屏幕\r\n\r\n```typescript\r\nimport { PrivacyScreen } from '@capacitor/privacy-screen';\r\n\r\n// Enable privacy screen with default settings\r\nawait PrivacyScreen.enable();\r\n\r\n// Enable with platform-specific configuration\r\nawait PrivacyScreen.enable({\r\n  android: {\r\n    dimBackground: true,\r\n    privacyModeOnActivityHidden: 'splash'\r\n  },\r\n  ios: {\r\n    blurEffect: 'dark'\r\n  }\r\n});\r\n\r\n// Disable privacy screen\r\nawait PrivacyScreen.disable();\r\n\r\n// Check if privacy screen is enabled\r\nconst { enabled } = await PrivacyScreen.isEnabled();\r\n```\r\n\r\n### 基础示例：暗屏保护\r\n\r\n```typescript\r\nimport { PrivacyScreen } from '@capacitor/privacy-screen';\r\n\r\n// Enable privacy screen when navigating to a secure screen\r\nasync function navigateToSecureScreen() {\r\n  await PrivacyScreen.enable({\r\n    android: { dimBackground: true },\r\n    ios: { blurEffect: 'dark' }\r\n  });\r\n  // Navigate to your secure screen\r\n}\r\n\r\n// Disable when navigating to a non-secure screen\r\nasync function navigateToPublicScreen() {\r\n  await PrivacyScreen.disable();\r\n  // Navigate to your public screen\r\n}\r\n```\r\n\r\n## 使用说明\r\n\r\n### 接口方法\r\n\r\n| 方法名        | 请求参数                                                                       | 返回类型                     | 描述                               |\r\n| ------------- | ------------------------------------------------------------------------------ | ---------------------------- | ---------------------------------- |\r\n| enable()    | config?: [PrivacyScreenConfig](#privacyscreenconfig) \\| Promise&lt;{ success: boolean }&gt; | 开启隐私屏幕保护                       ||\r\n| disable()   |                                                                                | Promise&lt;{ success: boolean }&gt; | 关闭隐私屏幕保护                       |\r\n| isEnabled() |                                                                                | Promise&lt;{ enabled: boolean }&gt; | 检查隐私屏幕保护是否已开启             |\r\n\r\n### 数据结构\r\n\r\n#### PrivacyScreenConfig\r\n\r\n| 参数        | 类型                                                                                               | 描述         |\r\n| ----------- | -------------------------------------------------------------------------------------------------- | ------------ |\r\n| android | { dimBackground?: boolean; preventScreenshots?: boolean; privacyModeOnActivityHidden?: 'none' \\| 'dim' \\| 'splash' } | Android 配置，dimBackground和preventScreenshots不支持OpenHarmony |\r\n| ios     | { blurEffect?: 'none' \\| 'light' \\| 'dark' }                                                     | iOS 配置     |\r\n\r\n## 目录结构\r\n\r\n```\r\n|---- 项目根目录\r\n|     |---- src\r\n|           |---- main\r\n|                 |---- cpp\r\n|                       |---- PrivacyScreen   # 插件核心 C++ 实现\r\n|                             |---- PrivacyScreen.h\r\n|                             |---- PrivacyScreen.cpp\r\n|                             |---- CMakeLists.txt\r\n|                 |---- ets\r\n|                       |---- components\r\n|                             |---- PrivacyScreen   # 插件核心 ArkTS 实现\r\n|                                   |---- PrivacyScreen.ets\r\n|                                   |---- PrivacyScreenDialog.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-privacy-screen/issues)，当然，也非常欢迎发 [PR](https://gitcode.com/CPF-Ionic/capacitor-privacy-screen/pulls) 共建。\r\n\r\n## 许可证\r\n\r\n本插件基于 **MIT License** 开源，详见 [LICENSE](./LICENSE) 文件。\r\n","readmeFilename":"README.md"}