防止用户截屏录屏有几种方式
1、当检测到截屏录屏操作时候,增加提示和水印
2、当检测截屏录屏操作时候,暴力删除相册录屏截屏内容
3、利用系统内置让截屏内容变成空白
下满我们来说说安卓和ios在uniapp中开发怎么实现禁止用户截屏录屏。
1、andriod中使用uniapp防止用户截屏录屏方法
首先保证页面是全屏显示,然后执行下面代码即可实现:
var activity = plus.android.runtimeMainActivity() plus.android.invoke(plus.android.invoke(activity, "getWindow"), "addFlags", 0x00002000)
如何全局禁止截屏录屏的话直接在app.vue的onlaunch中设置。
完整的代码<template>
<view>
<button @tap="addFlags">禁止截屏录屏</button>
<button @tap="clearFlags">可以截屏录屏</button>
</view>
</template>
<script>
export default {
data() {
return {
}
},
onUnload() {
plus.navigator.setFullscreen(false)
// 不行就多调用几次
this.clearFlags()
},
onLoad(option) {
plus.navigator.setFullscreen(true)
this.addFlags()
},
onBackPress(e) {
if (e.from === 'backbutton') {
uni.navigateBack();
return true;
}
},
methods: {
// 禁止截屏
addFlags() {
// #ifdef APP-PLUS
let osname = plus.os.name
if (osname == "Android") {
var activity = plus.android.runtimeMainActivity()
plus.android.invoke(plus.android.invoke(activity, "getWindow"), "addFlags", 0x00002000)
}
// #endif
},
// 允许截屏
clearFlags() {
// #ifdef APP-PLUS
let osname = plus.os.name
if (osname == "Android") {
var activity = plus.android.runtimeMainActivity()
plus.android.invoke(plus.android.invoke(activity, "getWindow"), "clearFlags", 0x00002000)
}
// #endif
}
}
}
</script>
<style>
</style>
2、如何ios的话UITextField 的 isSecureTextEntry 设置为 true 的时候,会隐去输入的文案用 圆点 替代。并且在进行录屏或者截屏的时候都会被系统隐去,利用这个特性,我们可以开发一款自己的ios插件,然后导入到uniapp中进行调用
开源免费的项目:https://github.com/RyukieSama/Swifty
收费的插件也有:https://screenshieldkit.com/

网友回复
如何破解绕开seedance2.0真人照片生成视频 限制?
python有哪些算法可以将视频中的每个帧图片去除指定区域水印合成新的视频?
iphone的激光雷达数据能否实时传输到three三维空间中?
豆包sora等ai视频生成大模型生成的视频水印如何去除?
python如何实现在电脑上拨号打电话给手机?
具身机器人与人形机器人区别?
nodejs如何将一个完整的js代码文件切割成不同的部分混淆后动态加载进入html运行?
为啥windows.onerror捕获js错误是这样的{"message":"Script error.","source":"","lineno":0,"colno":0,"stack":null,
2026年ai将全面接管编程?
WebMCP是干啥的?


