防止用户截屏录屏有几种方式
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/
网友回复
js如何流式输出ai的回答并折叠代码块,点击代码块右侧可预览代码?
ai大模型如何将文章转换成可视化一目了然的图片流程图图表?
大模型生成html版本的ui原型图和ppt演示文档的系统提示词怎么写?
rtsp视频直播流如何转换成websocket流在h5页面上观看?
为啥coze会开源工作流agent coze studio?
如何检测网页是通过收藏夹打开的?
python如何实现类似php的http动态脚本请求处理响应代码?
js如何实现类似php的http动态脚本请求处理响应代码?
trae与solo有啥区别不同?
vue如何让ai动态生成问卷调查多步骤表单式收集基础信息自动规划执行任务?