DRMScreenShot简介
DRMScreenShot插件封提供了 iOS 端禁止截屏的功能。在iOS开发的一些业务场景中,可能有一些敏感信息(如付款的二维码等),我们不希望被随意传播。应用内禁止截屏,可以一定程度上,提高敏感信息被传播的门槛(如用另外一台手机拍照实现手机间的传播)。
iOS系统的特殊性主要有两种禁止截屏的方案:
两者均有各自缺点。由于 iOS 支持 DRM(数字版权管理),可基于 DRM 开发出第三种禁止截屏方案。
DRM 是指当你播放一个加密了的hls流时进行截屏,该视频区域会显示空白。所以,可以把一个敏感信息的区域截屏生成图片,然后由截屏图片生成一个视频,转化为带DRM加密的视频,然后播放。用户视觉效果上没多大影响(仅对静态的页面区域比如一个二维码)。但是当用户执行截屏操作的时候,该区域就会消失,达到防止敏感内容落地的目的。本插件即实现了此方案。
注意:本插件仅支持 iOS 13.0 及以上系统
打开禁止截屏的区域
open({params}, callback(ret))
rect:
{
x: 0, //(可选项)数字类型;插件左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
y: 0, //(可选项)数字类型;插件左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
w:0, //(可选项)数字类型;插件宽度(相对于所属的 Window 或 Frame;默认0
h:0 //(可选项)数字类型;插件高度(相对于所属的 Window 或 Frame;默认0
}
videoPath:
image:
{
w:400, //数字类型;禁止截屏图片的宽,必须16的倍数
h:200 //数字类型;禁止截屏图片的高,必须16的倍数
path:'' //字符串类型;图片的路径,要求本地路径(fs://、widget://)。本参数与videoPath参数互斥,都有值时以videoPath为准
}
ret:
{
status: //布尔类型;是否开启成功
}
var name = api.require('DRMScreenShot');
name.open({
rect:{
x:100,
y:300,
w:120,
h:120
},
videoPath:'',
image:{
width:400,
height:200,
path:'widget://res/image.jpg',
}
}, function(ret) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
}
});
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
关闭
close()
var name = api.require('DRMScreenShot');
name.close();
iOS 系统
可提供的 1.0.0 及更高版本
隐藏
hide( )
var name = api.require('DRMScreenShot');
name.hide();
iOS 系统
可提供的 1.0.0 及更高版本
显示
show( )
var name = api.require('DRMScreenShot');
name.show();
iOS系统
可提供的 1.0.0 及更高版本