更新记录

1.0.0(2026-07-09)

初始版本,安卓拦截截屏和录屏,iOS录屏拦截


平台兼容性

uni-app(4.28)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- - - - 9.0 12
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
- - - - - - - - - - - -

uni-app x(4.28)

Chrome Safari Android iOS 鸿蒙 微信小程序
- - 9.0 12 -

禁止截屏、录屏 UTS 插件

  • 当前版本:1.0.0;
  • 插件 ID:vutet-screenshot
  • 插件类型:uni_modules UTS 插件;
  • 发布包:vutet-screenshot/vutet-screenshot_v1.0.0.zip
  • Android 使用 FLAG_SECURE 禁止截屏和录屏,并在开启时刷新当前窗口,覆盖“先录屏再进入应用开启保护”的场景;
  • iOS 不支持系统层面提前阻止静态截屏,插件会在截屏后回调提醒;
  • iOS 录屏/投屏期间显示全屏黑色保护遮罩,录屏结束后自动移除;如果先录屏再调用 enable(callback),也会立即显示遮罩;
  • HarmonyOS 使用窗口隐私模式。

接口

方法 平台 说明
enable(callback) Android、iOS、HarmonyOS 开启截屏/录屏保护
disable(callback) Android、iOS、HarmonyOS 关闭截屏/录屏保护

uni-app 使用示例

// 技术支持:***274472113
const screenShotModule = require("@/uni_modules/vutet-screenshot");

screenShotModule.enable((res) => {
  console.log(res);
  // Android:
  // { code: 200, message: "已开启截屏/录屏保护", platform: "android" }
  //
  // iOS:
  // {
  //   code: 200,
  //   message: "已开启截屏/录屏保护",
  //   event: "enabled",
  //   platform: "ios",
  //   captured: false,
  //   protected: true
  // }
});

关闭保护

const screenShotModule = require("@/uni_modules/vutet-screenshot");

screenShotModule.disable((res) => {
  console.log(res);
  // { code: 200, message: "已关闭截屏/录屏保护" }
});

回调事件说明

iOS 开启保护后,回调可能被多次触发:

{
  code: 200,
  message: "检测到截屏行为",
  event: "screenshot",
  platform: "ios",
  captured: false,
  protected: true
}

常见 event

event 说明
enabled 已开启截屏/录屏保护
disabled 已关闭截屏/录屏保护
screenshot iOS 检测到用户截屏
captured iOS 检测到录屏/投屏,已显示保护遮罩
captureEnded iOS 录屏/投屏结束,已移除保护遮罩

平台说明

  • Android 系统可通过 FLAG_SECURE 直接阻止截屏和录屏,开启后系统截图通常为空或失败。
  • Android 在 enable(callback) 后即可保护当前窗口;如果录屏已先开始,则从开启保护后的画面开始被系统安全窗口拦截。
  • iOS 不提供完全禁止用户静态截屏的公开 API;插件只能在截屏后收到系统通知并回调。
  • iOS 录屏/投屏可通过 UIScreen.main.isCaptured 和捕获状态变化通知检测,插件会显示全屏黑色遮罩直到录屏/投屏结束。
  • UIScreenCapturedDidChangeNotificationisCaptured 从 iOS 11 开始可用;低版本 iOS 仍可监听截屏事件,但无法检测录屏/投屏状态。

打包说明

插件包按 UTS uni_modules 结构交付:

vutet-screenshot_v1.0.0.zip
├── package.json
├── readme.md
├── changelog.md
└── utssdk/

注意:压缩包根目录必须直接存在 utssdk 目录,不能多包一层 vutet-screenshot/ 目录。

问题反馈

插件可能存在的问题:

  1. iOS 无法从系统层面完全阻止用户静态截屏,只能检测截屏事件并回调;
  2. iOS 录屏/投屏通过黑色遮罩保护内容,模拟器系统录屏可能无法稳定触发真实设备上的录屏状态回调;
  3. Android 不支持截屏事件回调,只负责禁止截屏/录屏;
  4. 联系 ***。

隐私、权限声明

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

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

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

暂无用户评论。