防止用户截屏录屏有几种方式
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/

网友回复
阿里云ESA、cloudflare worker、腾讯云EdgeOne网站代理托管哪家更好?
剪映能打开.fcpxml格式的文件吗?
增量式编码器与绝对式编码器的区别是啥?
有没有开源的单张照片或者序列帧图片或视频就能重建4d场景动画项目?
chrome网页突然报错:错误代码:RESULT_CODE_KILLED_BAD_MESSAGE
openai的codex如何全程无需手动确认自动修改文件?
阿里云oss前端上传文件直传如何限制文件类型?
阿里云oss前端获取policy签名直传oss上传文件回调如何传?
如何将根据三维物体通过提示词变成可交互的4d场景动画?
浏览器中实时摄像头离线视觉ai模型有吗?


