更新记录
1.01(2026-11-13)
初始化
平台兼容性
uts-screen-shield
UTS 原生防截屏 / 录屏拦截插件。零 UI、纯原生能力,支持 uni-app(vue2/vue3)与 uni-app x(uvue)。
能力矩阵
| 能力 | Android | iOS |
|---|---|---|
| 阻断系统截屏 | ✅ FLAG_SECURE 硬阻断 |
❌ 系统不允许,只能事后感知 |
| 阻断录屏画面 | ✅ 录屏中窗口区域黑屏 | ⚠️ secure 图层 trick,尽力而为 |
| 录屏状态实时回调 | ❌ 系统无公开 API | ✅ UIScreen.isCaptured |
| 截屏事件回调 | ✅ Android 14+ | ✅ 事后通知 |
| 后台缩略图防泄漏 | ✅ Recents 缩略图空白 | ✅ 毛玻璃遮罩 |
安装
把 uni_modules/uts-screen-shield 整个目录放进项目,HBuilderX 会自动识别为 UTS 插件。
自定义基座 / 云打包时勾选该插件即可,不需要手动配置任何权限。
API
import {
enableSecure, disableSecure, isCapturing,
onCaptureChange, onScreenshot,
enableBlurWhenBackground, removeAllListeners
} from '@/uni_modules/uts-screen-shield'
| 方法 | 说明 |
|---|---|
enableSecure() |
开启防护(Android 打 FLAG_SECURE + 注册截屏回调;iOS 注册录屏监听 + 尝试 secure 图层) |
disableSecure() |
关闭防护并还原(清除标志、移除监听、卸载 secure 图层) |
isCapturing(): boolean |
是否正在录屏。iOS 为真实查询,Android 恒为本地缓存状态 |
onCaptureChange(cb) |
录屏状态变化,cb(isCapturing: boolean) |
onScreenshot(cb) |
截屏事件,cb({ platform, timestamp, reason }) |
enableBlurWhenBackground() |
切后台毛玻璃遮挡(iOS 用 UIVisualEffectView,Android 由 FLAG_SECURE 覆盖) |
removeAllListeners() |
移除全部 JS 监听,页面 onUnload 必须调用 |
⚠️ iOS 限制(请务必写进你的产品文案)
- 无法阻断系统截屏。App 只能在截图完成后收到
UIApplicationUserDidTakeScreenshotNotification,此时图片已进相册。除非申请相册写权限去删图(体验差、审核风险高),否则唯一手段是"事后遮黑 + 提示"。 - 录屏可以检测,但遮黑是业务的事。插件只通知
isCaptured变化,页面遮黑由业务自己做(见 demo 的v-if="capturing"遮罩层)。 - secure 图层 trick 不是公开 API。它依赖
isSecureTextEntry的安全渲染上下文,不同 iOS 版本表现不一致,可能与视频/地图/WebView 抢渲染,也存在 App Store 审核风险。插件默认"尽力安装 + 失败静默降级",请自行评估。 - 真正 100% 有效的方案只有「检测到录屏后由业务遮黑」,这也是本插件把决定权交给业务的原因。
性能说明
- 插件不注册任何全局初始化,
import不产生任何原生开销,只有首次调用enableSecure()才注册监听。 - 回调做了状态去重:
isCapturing未变化不会跨线程回调 JS,避免高频 IPC 拖慢渲染。 - 原生对象(通知 token / UITextField / UIVisualEffectView)都在
disableSecure()与removeAllListeners()中释放,长驻页面反复进出不会泄漏。
目录结构
uni_modules/uts-screen-shield/
├── package.json # 插件描述(uni_modules + 插件市场信息)
├── readme.md
├── demo/
│ └── screen-shield-demo.vue # 接入示例页面
└── utssdk/
├── interface.uts # 公共类型
├── index.uts # 默认实现(H5/小程序降级)
├── app-android/
│ ├── index.uts # Android 实现
│ └── config.json
└── app-ios/
├── index.uts # iOS 实现
└── config.json

收藏人数:
购买普通授权版(
试用
赞赏(0)
下载 9
赞赏 0
下载 12763894
赞赏 1959
赞赏
京公网安备:11010802035340号