当前位置:   article > 正文

微信小程序在某个页面防止用户截屏、录屏实现_小程序可以不给截图吗有些页面

小程序可以不给截图吗有些页面

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

  1. wx.previewImage({
  2. current:urlList[index],
  3. urls: urlList,
  4. showmenu: false,
  5. success: function(res) {},
  6. fail: function(err) {}
  7. });

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

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

  1. if (/android/i.test(wx.getSystemInfoSync().system) && wx.setVisualEffectOnCapture) {
  2. wx.setVisualEffectOnCapture({
  3. visualEffect: 'hidden',
  4. complete: function (res) {}
  5. })
  6. }

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

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

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

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

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

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

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

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

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

  1. //查询用户是否在录屏
  2. if (/ios/i.test(wx.getSystemInfoSync().system)&&wx.getScreenRecordingState) {
  3. wx.getScreenRecordingState({
  4. success: res => {
  5. if (res.state != 'off') {
  6. that.setData({
  7. isShow: false//页面遮挡
  8. })
  9. } else {
  10. that.setData({
  11. isShow: true
  12. })
  13. }
  14. }
  15. })
  16. }
  17. // 监听用户录屏事件
  18. if (/ios/i.test(wx.getSystemInfoSync().system)&&wx.onScreenRecordingStateChanged) {
  19. wx.onScreenRecordingStateChanged(res => {
  20. if (res.state == 'start') {
  21. that.setData({
  22. isShow: false//页面遮挡
  23. })
  24. } else {
  25. that.setData({
  26. isShow: true
  27. })
  28. }
  29. })
  30. }

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

  1. if (wx.offScreenRecordingStateChanged) {
  2. wx.offScreenRecordingStateChanged()
  3. }

基本就这些了,完结~~~撒花~~~~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/347000
推荐阅读
相关标签
  

闽ICP备14008679号