更新记录
1.0.0(2026-09-02)
- 隐私屏幕保护 UTS 插件首个版本,支持 iOS / Android / HarmonyOS 三端,同一套 API:
setup(options?)/show()/close()/onBackground(callback, event?)/destroy() - iOS:实时模糊遮罩,进后台/切 App Switcher/失焦自动叠加,回前台移除;支持
blurRadius(模糊强度)与autoEvent(触发时机)配置 - Android:系统级
FLAG_SECURE快照保护(截屏/录屏/最近任务快照空白) - HarmonyOS NEXT:窗口隐私模式(需
ohos.permission.PRIVACY_WINDOW权限) - 传统 uni-app(Vue3)与 uni-app x 双宿主兼容
平台兼容性
uni-app(4.87)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-vue插件版本 | app-nvue | app-nvue插件版本 | Android | Android插件版本 | iOS | iOS插件版本 | 鸿蒙 | 鸿蒙插件版本 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | √ | 1.0.0 | √ | 1.0.0 | 12.0 | 1.0.0 | 12 | 1.0.0 | √ | 1.0.0 |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | - | - | - | - |
uni-app x(4.87)
| Chrome | Safari | Android | Android插件版本 | iOS | iOS插件版本 | 鸿蒙 | 鸿蒙插件版本 | 微信小程序 |
|---|---|---|---|---|---|---|---|---|
| - | - | 12.0 | 1.0.0 | 12 | 1.0.0 | √ | 1.0.0 | - |
w-privacy-mask 隐私屏幕保护 UTS 插件
App 退到后台 / 切多任务卡片 / 失焦时自动保护屏幕内容,快照、截图、录屏不再泄露敏感信息。支持 iOS / Android / HarmonyOS,三端同一套 API。
安装
- 将
uni_modules/w-privacy-mask目录复制到项目根目录uni_modules/下; - 若已发布到 DCloud 插件市场,可直接在 HBuilderX 中通过插件市场导入。
使用
在 App.vue 的 onLaunch 中初始化一次即可:
import { PrivacyMask } from "@/uni_modules/w-privacy-mask"
export default {
onLaunch() {
PrivacyMask.setup()
}
}
API
setup(options?: PrivacyMaskOptions): void
启用自动隐私保护。
options.blurRadius?: number:iOS 模糊强度,默认12,范围0-30;Android / HarmonyOS 忽略。options.autoEvent?: PrivacyMaskBackgroundEvent:iOS 触发时机,'didEnterBackground'(默认)或'willResignActive';Android / HarmonyOS 忽略(系统级全程保护)。
show(): void
手动启用保护:
- iOS:立即叠加实时模糊遮罩
- Android / HarmonyOS:立即启用截屏/快照保护
close(): void
手动解除保护(供正常截图/录屏等场景);用毕 show() 恢复。
onBackground(callback: () => void, event?: PrivacyMaskBackgroundEvent): void
- 注册进后台回调,
callback触发,重复调用替换上一次回调。 event:'didEnterBackground'(默认,真正进后台)或'willResignActive'(失焦)。iOS / Android 精确映射;HarmonyOS 为窗口隐藏 / 失焦(依 SDK 支持)。- uts 端已配置
@UTSJS.keepAlive(iOS / Android),回调可重复触发。
destroy(): void
移除所有监听、解除保护、清回调,彻底清理;未 setup 时调用安全无副作用。
平台差异
| 维度 | iOS | Android | HarmonyOS |
|---|---|---|---|
| 保护机制 | 可见实时模糊遮罩 | 系统级 FLAG_SECURE | 窗口隐私模式 |
| 系统版本 | - | 需 Android 12+ | - |
blurRadius / autoEvent |
生效 | 忽略 | 忽略 |
| 保护期间截图/录屏 | 快照为模糊画面 | 空白/纯色 | 被系统禁止 |
| 额外权限 | 无 | 无 | ohos.permission.PRIVACY_WINDOW |
Android / HarmonyOS 保护期间无法截图/录屏属预期行为,需正常截图时先
close(),用毕show()。
使用示例
import { PrivacyMask } from "@/uni_modules/w-privacy-mask"
// 自动保护 + 进后台回调
PrivacyMask.setup()
PrivacyMask.onBackground(() => {
console.log('App 进入后台,可在此执行业务处理')
})
// 手动控制(如敏感操作前主动保护 / 结束后恢复)
PrivacyMask.show()
PrivacyMask.close()
说明
- 不使用任何系统权限与 SDK(HarmonyOS 端需系统隐私窗口权限
ohos.permission.PRIVACY_WINDOW,插件 module.json5 已配置,应用主工程建议同步声明)。 - iOS:基于 App 失焦在 keyWindow 顶层叠加实时模糊遮罩,回前台自动移除。
- Android:系统级
FLAG_SECURE全程保持,切后台最近任务快照空白/纯色。 - HarmonyOS:窗口隐私模式,
setup后全程保护,回前台自动重设(防御部分系统切换后失效)。
HarmonyOS 权限配置(如需应用主工程声明)
// module.json5 的 module.requestPermissions 中追加
{
"name": "ohos.permission.PRIVACY_WINDOW",
"reason": "$string:privacy_window_reason",
"usedScene": { "when": "inuse" }
}

收藏人数:
购买源码授权版(
试用
赞赏(0)
下载 103
赞赏 0
下载 12555186
赞赏 1948
赞赏
京公网安备:11010802035340号