Android防截屏录屏
关于防截屏录屏,官方给出的方案是wx.setVisualEffectOnCapture(Object object)
注意:1、仅支持Android
2、基础库 不低于2.21.3
onShow() { if (wx.setVisualEffectOnCapture) { wx.setVisualEffectOnCapture({ visualEffect: 'hidden', complete: function (res) { } }) } }
如果只在页面A的onShow()中设置wx.setVisualEffectOnCapture不做其他出来,会发现,只要在页面A截屏后,小程序其余页面都无法截屏了。所以我们还需要做其余操作:
// 页面隐藏和销毁时需要释放防截屏录屏设置 onHide(){ if (wx.setVisualEffectOnCapture) { wx.setVisualEffectOnCapture({ visualEffect: 'none', complete: function(res) { } }) } }, onUnload(){ if (wx.setVisualEffectOnCapture) { wx.setVisualEffectOnCapture({ visualEffect: 'none', complete: function(res) { } }) } }
IOS防录屏
官方给出的方案wx.onScreenRecordingStateChanged(function listener)
注意:1、仅支持IOS
2、基础库2.24.0开始支持
onLoad(){ if(wx.getScreenRecordingState){ wx.getScreenRecordingState({ success: res => { console.log(res.state) } }) } if(wx.onScreenRecordingStateChanged){ wx.onScreenRecordingStateChanged(res => { console.log(res.state) } }}
同上,隐藏或销毁当前页面时需要做解除当前防录屏的设置
onHide(){ if(wx.offScreenRecordingStateChanged){ // 取消录屏监听事件 wx.offScreenRecordingStateChanged() }},onUnload(){ if(wx.offScreenRecordingStateChanged){ // 取消录屏监听事件 wx.offScreenRecordingStateChanged() }}
来源地址:https://blog.csdn.net/ly2983068126/article/details/128728124