更新记录

1.0.0(2026-08-18)

  • 首次发布 HarmonyOS 应用级防截屏、防录屏能力。
  • 增加 enableScreenProtectiondisableScreenProtectiononScreenCaptureAttemptoffScreenCaptureAttempt
  • 增加 PRIVACY_WINDOW 权限配置说明、统一返回结果和截屏尝试回调。
  • 明确 HarmonyOS、普通授权和源码授权的交付边界。

平台兼容性

uni-app(4.55)

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

uni-app x(4.55)

Chrome Safari Android iOS 鸿蒙 鸿蒙插件版本 微信小程序
- - - - 20 1.0.0 -

HarmonyOS 防截屏防录屏

lzt-screen-protection 是面向 uni-app Vue3 HarmonyOS App 的 UTS 插件,用于设置应用窗口隐私模式,阻止系统截屏和录屏获取应用内容,并在系统提供截屏尝试事件时回调通知。

支持范围

  • 运行端:HarmonyOS App。
  • 项目:uni-app Vue3。
  • HBuilderX:4.24.0 及以上。
  • 不承诺 Android、iOS、H5 或小程序兼容性。

安装后的权限配置

插件需要 ohos.permission.PRIVACY_WINDOW。在项目的 harmony-configs/entry/src/main/module.json5 中确认 requestPermissions 包含以下配置;如果项目没有该目录,先在 HBuilderX 运行一次 HarmonyOS 项目生成目录结构。

{
  "module": {
    "requestPermissions": [
      {
        "name": "ohos.permission.PRIVACY_WINDOW",
        "reason": "$string:screen_protection_permission_reason",
        "usedScene": {
          "abilities": ["EntryAbility"],
          "when": "inuse"
        }
      }
    ]
  }
}

同时在 harmony-configs/AppScope/resources/base/element/string.json 添加 screen_protection_permission_reason 字符串。重新运行时建议选择“清空缓存”。

基本用法

import {
  enableScreenProtection,
  onScreenCaptureAttempt,
  offScreenCaptureAttempt,
  disableScreenProtection
} from '@/uni_modules/lzt-screen-protection'

const SCREEN_PROTECTION_ENABLED = true
const captureCallback = () => {
  uni.showToast({ title: '当前页面禁止截屏', icon: 'none' })
}

if (SCREEN_PROTECTION_ENABLED) {
  const result = await enableScreenProtection()
  if (!result.supported) {
    console.error('[screen-protection] ' + result.message)
  } else {
    const eventResult = onScreenCaptureAttempt(captureCallback)
    if (!eventResult.eventSupported) {
      console.error('[screen-protection] ' + eventResult.message)
    }
  }
}

// 后续需要关闭时调用:
// offScreenCaptureAttempt()
// await disableScreenProtection()

SCREEN_PROTECTION_ENABLED 是使用方的应用级开关。设为 false 时不要调用启用、监听和权限申请方法;修改后需要重新运行或打包应用。

返回结果

所有方法返回统一结构:

字段 含义
supported 当前平台或窗口保护是否可用
eventSupported 是否支持截屏尝试事件
message 面向日志和排查的中文说明

eventSupportedfalse 时,不代表窗口保护失败;HarmonyOS 仍可能已经阻止系统截屏和录屏,只是不提供实时事件回调。

授权与试用

  • 试用:通过独立签名演示应用验证,不分发试用源码。
  • 普通授权:49 元,单个 HarmonyOS bundleName 永久使用,不含插件源码。
  • 源码授权:199 元,交付插件完整源码、类型声明、权限配置示例和文档。
  • 普通授权不提供在线激活、订阅续费或设备绑定技术校验;使用范围以商品授权条款为准。
  • 禁止将普通授权插件包或源码再次销售、公开分发或用于制作同类插件。

防护边界

该插件阻止系统对应用窗口进行被动截屏和录屏,不能阻止外部相机拍摄屏幕,也不限制应用自身主动采集屏幕内容。实际效果与 HarmonyOS 版本、设备策略和权限签名有关,购买前请在目标设备上验证。

隐私、权限声明

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

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

插件不采集任何数据

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