如何检测屏幕截图事件并在科尔多瓦中停止它

Posted

技术标签:

【中文标题】如何检测屏幕截图事件并在科尔多瓦中停止它【英文标题】:how to detect screenshot event and stop it in cordova 【发布时间】:2019-09-11 10:42:53 【问题描述】:

现在我正在使用 cordova-plugin-prevent-screenshot 来防止用户截屏。但是当用户尝试截屏时,它没有自定义处理程序来显示任何自定义通知。有什么库或代码可以帮助我吗?

【问题讨论】:

【参考方案1】:

检测 ios 版 Cordova 上的屏幕截图。该插件仅适用于 iOS >= 7 的设备,但请随意将此插件包含在目标低于 iOS 7 的项目中。该插件会在侦听事件之前检查 iOS 版本,因此不会破坏任何东西。

安装

cordova plugin add cordova-plugin-detect-screenshot

当出现屏幕截图时,会触发“屏幕截图”事件。只需在您的 javascript 中侦听此事件即可。

document.addEventListener("screenshot", function() 
    window.alert("Screenshot");
, false);

要禁用应用中的屏幕截图,请使用插件提供的禁用方法。请注意,脚本需要在cordova的deviceready事件之后的of期间执行。

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);

再次启用屏幕截图 该插件允许您动态更改应用程序屏幕截图的权限。要再次启用屏幕截图,请使用 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);


【讨论】:

OurCodeWorldpreventscreenshots 不适用于 iOS @Rich 可惜的是,我们的codeworld-cordova-preventscreenshots 插件不支持iOS,但是有另一个插件同时支持android 和iOS,但是你不能动态地改变这个功能。在github.com/devgeeks/PrivacyScreenPlugin 处阅读插件的文档。但您也可以安装以下插件以同时支持 iOS 和 Android:cordova plugin add cordova-plugin-privacyscreen # 或 phonegap local plugin add cordova-plugin-privacyscreen 另外请注意,除了安装插件,您不需要做任何事情,因为它会在安装时自动配置。隐私将在您的应用中永久启用。 我也试过这个插件,但即使我已经添加了插件,我仍然可以截图。

以上是关于如何检测屏幕截图事件并在科尔多瓦中停止它的主要内容,如果未能解决你的问题,请参考以下文章

在 Android 4.0+ 上检测屏幕截图尝试

如何创建文件夹并在其中保存屏幕截图

离子科尔多瓦键盘将离子页脚栏推离屏幕

如何捕获当前视图屏幕截图并在代码中重用? (iPhone SDK)

检测屏幕截图中的文本区域

如何在移动iOS / Android上使用JS屏蔽截图? [关闭]