如何在Android中的Cordova应用程序中禁用屏幕截图

本文概述

你可能希望禁用屏幕快照, 以防止图像内容或视频等的复制。此任务在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电影应用程序)现在允许执行该操作。

防止截图Android Cordova

如果从最近使用过的应用程序中看到该应用程序, 则背景为灰色。

Cordova屏幕截图最近使用过的应用程序

再次启用屏幕截图

该插件可让你动态地更改屏幕截图对你应用的权限。要再次启用屏幕截图, 请使用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

请注意, 你无需执行任何操作即可安装插件, 因为它将在安装时自动配置。隐私将在你的应用程序中永久启用。

玩得开心

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?