微信小程序在某个页面防止用户截屏、录屏实现

这篇具有很好参考价值的文章主要介绍了微信小程序在某个页面防止用户截屏、录屏实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

好吧!好吧!项目~又来搞事情了,想在预览图片的时候监听图片长按菜单的“保存图片”操作,因为在这有个查询用户是否有保存图片的权限,没有的话就不能把图片保存到手机,但是查了半天,发现根本无法监听到长按菜单的对应操作(分享朋友、保存图片等等),干脆把菜单禁用,然后改为不能让用户在这截屏录屏

        wx.previewImage({
          current:urlList[index],
          urls: urlList,
          showmenu: false,
          success: function(res) {},
          fail: function(err) {}
        });

这里使用官方文档提供的api,就存在设备兼容问题:

设备 / 屏幕 / wx.setVisualEffectOnCapture (qq.com)

小程序防止截屏,微信小程序,小程序

      if (/android/i.test(wx.getSystemInfoSync().system) && wx.setVisualEffectOnCapture) {
        wx.setVisualEffectOnCapture({
          visualEffect: 'hidden',
          complete: function (res) {}
        })
      }

这里遇到一个问题,就是我明明设置了  visualEffect: 'hidden',但是录屏之后查看内容还是能正常显示,这我就懵了~~~

还好在下面这篇文章找到了解决办法:在页面的xxx.json文件里配置visualEffectInBackground:hidden就可以了

记录一下小程序某个页面禁止用户截图、录屏的实现方法 - 掘金 (juejin.cn)

记得在隐藏和销毁页面的时候把防录屏的设置解除掉:


//android隐藏或销毁当前页面时释放相关设置
      if (wx.setVisualEffectOnCapture) {
        wx.setVisualEffectOnCapture({
          visualEffect: 'none',
          complete: function (res) {}
        })
      }

 IOS设备的查了资料,截屏暂时是没有解决方案的,但是录屏官方给出的方案是:

设备 / 屏幕 / wx.getScreenRecordingState (qq.com) 

设备 / 屏幕 / wx.getScreenRecordingState (qq.com)

具体实现就是查询用户是否在录屏,监听录屏动作,我这里是对页面做了遮挡操作

    //查询用户是否在录屏
    if (/ios/i.test(wx.getSystemInfoSync().system)&&wx.getScreenRecordingState) {
      wx.getScreenRecordingState({
        success: res => {
          if (res.state != 'off') {
            that.setData({
              isShow: false//页面遮挡
            })
          } else {
            that.setData({
              isShow: true
            })
          }
        }
      })
    }
    // 监听用户录屏事件
    if (/ios/i.test(wx.getSystemInfoSync().system)&&wx.onScreenRecordingStateChanged) {
      wx.onScreenRecordingStateChanged(res => {
        if (res.state == 'start') {
          that.setData({
            isShow: false//页面遮挡
          })
        
        } else {
          that.setData({
            isShow: true
          })
        }
      })
    }

同样的要在隐藏和销毁页面的时候把防录屏的设置解除掉:

      if (wx.offScreenRecordingStateChanged) {
        wx.offScreenRecordingStateChanged()
      }

基本就这些了,完结~~~撒花~~~~文章来源地址https://www.toymoban.com/news/detail-754220.html

到了这里,关于微信小程序在某个页面防止用户截屏、录屏实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序检查录音权限并引导用户进入设置页面

    wx.startRecord(Object object) :开始录音接口,调用该接口后,小程序将会录制音频,最长可以录制60秒。 wx.stopRecord() :停止录音接口,调用该接口后,录音将停止并生成音频文件。 wx.pauseVoice() :暂停播放音频接口,调用该接口后,正在播放的音频将会暂停。 wx.resumeVoice() :继续

    2024年02月03日
    浏览(72)
  • uniapp微信小程序:点击按钮先判断用户是否授权位置信息、用户位置信息授权、进入下一个页面

    前提 :该实例是使用uniapp的小程序 实现的 文章描述: 这里要实现的功能是: 1、点击页面中的一个按钮 2、判断用户是否授权位置信息 3、未授权–弹出位置授权框;已授权–进入下一个页面(地址选择页); 4、弹出位置授权框后,是否同意授权 5、同意:得到地址;不同

    2024年02月08日
    浏览(39)
  • 微信小程序登录页验证与页面跳转(二) ---结合SpringBoot和MySQL实现多用户登录

    Spring Boot的开发环境如下: 1、IDEA:2020 2、JDK版本:1.8 3、MySQL 版本:8 代码如下(示例): 打开IDEA,新建项目: 这里选择Spring lnitializr: 在接下来的页面中进行如下配置: 进行下一步:选择SpringBoot的版本,这里选择的是2.7.14 然后: 设置项目所在路径和设置项目名称: 项

    2024年01月22日
    浏览(43)
  • 微信小程序阻止录屏

    安卓 wx.setVisualEffectOnCapture 设置安卓端录屏时的表现(仅支持安卓) 注意!!!基础库 2.20.1 开始支持 IOS wx.onScreenRecordingStateChanged 支持监听ios端的录屏事件(仅支持IOS) 注意!!!基础库 2.24.0 开始支持 如果需要控制页面级的阻止录屏 使用 wx.getScreenRecordingState + wx.onScreenR

    2024年02月11日
    浏览(81)
  • 微信小程序防录频截屏ios+android

    安卓录频截屏代码 可以写在onshow中 但是要注意的是,一定不能只开启监听,也要卸载监听 ios防录频 这里当然也要卸载

    2024年02月12日
    浏览(27)
  • 微信小程序——监听页面滑动(二)判断用户在做向上滑动还是向下滑动(onScrollPage scroll-view)

    知识专栏 专栏链接 微信小程序专栏 https://blog.csdn.net/xsl_hr/category_12338067.html?spm=1001.2014.3001.5482 Git版本管理 https://blog.csdn.net/XSL_HR/article/details/130986889?spm=1001.2014.3001.5501 监听页面滑动 https://blog.csdn.net/XSL_HR/article/details/130986889?spm=1001.2014.3001.5501 有关 微信小程序 的相关知识可以前

    2024年02月11日
    浏览(33)
  • 微信小程序防止重复提交

    微信小程序在真机测试时,遇到这样一种情况:当网络条件差或卡顿的情况下,进行某项操作时,使用者会认为点击无效而进行多次点击,致使多次跳转页面或多次上传同一表单,导致函数或接口被多次调用,实际上使用者只想调用函数和接口一次。 添加节流阀,即按下按钮

    2024年02月13日
    浏览(37)
  • 【微信小程序系列:二】小程序常用功能:跳转地图、扫一扫、人脸识别、拍照、拨打电话、调整屏幕亮度、文字可复制、监听截屏...

    (~ ̄▽ ̄)~,hello,微信小程序系列第二篇,介绍下小程序里的 前端常用功能api ,可以快速copy使用~ 小程序页面里的文字默认是没有长按复制功能的,需要套个标签来实现:跳转官方文档 点击按钮,直接复制文本,直接调用微信方法: 有时显示一些地址需要在地图显示,

    2023年04月09日
    浏览(67)
  • Android禁止截屏和录屏

    只需要简单的一行代码:放在activity中的setContentView之前。

    2024年02月07日
    浏览(39)
  • adb详细教程(五)-复制文件、截屏、录屏

    adb对于安卓移动端来说,是个非常重要的调试工具。 在进行安卓端的开发或测试过程中,有时需要了截屏或录屏,在设备上操作完成后再将文件导入电脑非常繁琐。 ​如果使用adb指令在进行截屏或录屏则会便捷许多。 此篇文章介绍了如何使用adb指令进行文件传输、截屏、录

    2024年01月25日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包