更新记录

0.1.0(2026-08-21)

  • 修复 Android 10 上 ActivityLifecycleCallbacks$-CC 缺失导致的启动崩溃,并在 SEUIC CRUISE Ge2 真机验证前后台切换不再报错。
  • 完成 Android 后台遮罩、FLAG_SECURE 截屏保护、Android 14 截图事件和 Android 15 录屏状态检测。
  • 完成 iOS 后台遮罩、截图完成事件及录屏/投屏状态监听。
  • 新增平台能力状态 API、交互式示例页、API 文档和发布前测试清单。
  • 通过 Android、iOS UTS 插件模块与双端整项目编译,并在 iOS 模拟器完成首屏运行检查。

平台兼容性

uni-app x(4.0)

Chrome Safari Android Android插件版本 iOS iOS插件版本 鸿蒙 微信小程序
× × 5.0 0.1.0 12 0.1.0 × ×

xs-privacy-screen

面向 uni-app x App 的隐私屏幕保护 UTS API 插件。支持后台任务快照遮罩、Android 截屏保护,以及按系统版本监听截图、录屏/投屏和前后台事件。全部处理在设备本地完成,不读取截图内容,不联网、不存储、不上传数据。

支持平台

  • Android 5.0(API 21)及以上:后台遮罩与 FLAG_SECURE 截屏保护。
  • Android 14(API 34)及以上:额外支持系统截图事件。
  • Android 15(API 35)及以上:额外支持录屏可见状态检测。
  • iOS 12.0 及以上:后台遮罩、截图完成事件、录屏/投屏状态检测。
  • 已编译验证:uni-app x App-Android、App-iOS。
  • Web、小程序和 HarmonyOS 暂不支持。

快速使用

import {
  configurePrivacyScreen,
  setScreenshotBlocked,
  startPrivacyEventMonitor,
  stopPrivacyEventMonitor,
  PrivacyScreenEvent
} from '@/uni_modules/xs-privacy-screen'

configurePrivacyScreen({
  enabled: true,
  backgroundColor: '#101820',
  imagePath: null,
  message: '敏感内容已隐藏'
})

// Android 返回 true;iOS 因系统能力限制返回 false。
const blockSupported = setScreenshotBlocked(true)

startPrivacyEventMonitor((event : PrivacyScreenEvent) => {
  console.log(event.type, event.timestamp)
})

// 页面销毁或不再需要事件时调用,不会取消遮罩和截屏保护配置。
stopPrivacyEventMonitor()

API

  • configurePrivacyScreen(options):配置后台隐私遮罩、背景色、图片和文案。
  • setScreenshotBlocked(blocked):Android 设置或清除安全窗口标记;iOS 始终返回 false
  • isScreenCaptured():读取当前录屏、投屏或屏幕克隆状态;不支持的 Android 版本返回 false
  • getPrivacyScreenStatus():返回当前配置与平台能力矩阵。
  • startPrivacyEventMonitor(callback):监听截图、录屏开始/结束、进入后台和返回前台。
  • stopPrivacyEventMonitor():只停止事件监听并释放系统回调。

详细字段和平台差异见示例工程的 docs/API.md

权限与数据

  • Android 自动合并 android.permission.DETECT_SCREEN_CAPTURE。这是普通安装时权限,不弹运行时授权框,仅 Android 14+ 的标准截图检测 API 使用。
  • iOS 无需申请用户授权权限。
  • 插件不会获取截图图片、屏幕像素或业务内容,也不会发送网络请求。

调试基座

插件包含 Android 权限和双端原生源码配置。HBuilderX 标准基座不能应用项目新增的原生配置,真机联调时请制作自定义调试基座。

能力边界

iOS 没有允许第三方 App 彻底禁止系统截图的公开 API,截图通知也在截图完成后才触发;请勿把事件监听描述为“截图拦截”。Android FLAG_SECURE 能阻止窗口内容进入常规系统截图和非安全显示,但不能替代 Root、越狱、外部相机或定制系统环境下的整体安全方案。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

Android 自动合并 android.permission.DETECT_SCREEN_CAPTURE(普通安装时权限,仅 Android 14+ 用于系统截图事件);iOS 无需申请用户授权权限

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

仅在设备本地读取截屏、录屏和应用前后台状态,不采集截图内容,不存储、不上传任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。