本文概述
你可能希望禁用屏幕快照, 以防止图像内容或视频等的复制。此任务在Java中很容易实现, 但是作为Cordova开发人员, 你可能想使用插件。
注意:如果需要对Android和iOS的支持, 请转至文章末尾的iOS支持插件标题。
要求
我们将需要cordova-ourcodeworld-preventscreenshots插件来动态禁用屏幕快照的权限。
要安装它, 请在node.js的命令提示符中执行以下命令:
cordova plugin add https://github.com/sdkcarlos/cordova-ourcodeworld-preventscreenshots.git
然后, 在javascript中, 你可以将插件与全局变量OurCodeWorldpreventscreenshots一起使用。此插件在Android中设置FLAG_SECURE标志(这也可以防止获取手动屏幕截图)。在此处阅读有关插件的更多信息。
禁用屏幕截图
要禁用应用程序中的屏幕截图, 请使用插件提供的disable方法。请注意, 脚本需要在cordova的deviceready事件之后的期间执行。
document.addEventListener("deviceready", function(){
var successCallback = function(){
console.log("The screenshots are not allowed now.");
};
var errorCallback = function(err){
console.error("An error ocurred : " + err);
};
OurCodeWorldpreventscreenshots.disable(successCallback, errorCallback);
}, false);
如果用户尝试拍摄快照, 则会显示一条消息, 警告你由于安全策略(如netflix或Google电影应用程序)现在允许执行该操作。
如果从最近使用过的应用程序中看到该应用程序, 则背景为灰色。
再次启用屏幕截图
该插件可让你动态地更改屏幕截图对你应用的权限。要再次启用屏幕截图, 请使用enable方法。
document.addEventListener("deviceready", function(){
var successCallback = function(){
console.log("The screenshots are allowed now again.");
};
var errorCallback = function(err){
console.error("An error ocurred : " + err);
};
OurCodeWorldpreventscreenshots.enable(successCallback, errorCallback);
}, false);
与iOS的兼容性
可惜的是, 我们的codeworld-cordova-preventscreenshots插件不支持iOS, 但是还有另一个插件同时支持Android和iOS, 但是你无法在动态上更改此功能。在此处阅读插件的文档。
安装以下插件以提供对iOS和Android的支持:
cordova plugin add cordova-plugin-privacyscreen
# or
phonegap local plugin add cordova-plugin-privacyscreen
请注意, 你无需执行任何操作即可安装插件, 因为它将在安装时自动配置。隐私将在你的应用程序中永久启用。
玩得开心
评论前必须登录!
注册