使用 Cordova 防止 iOS 应用程序保留屏幕快照

Posted

技术标签:

【中文标题】使用 Cordova 防止 iOS 应用程序保留屏幕快照【英文标题】:Prevent iOS app from keeping screen snapshot using Cordova 【发布时间】:2017-06-16 11:52:31 【问题描述】:

我正在开发包含用户个人数据的 cordova/ng4 ios 应用程序,我不希望在从多任务处理返回应用程序或重新打开应用程序时显示旧快照。是否可以在.plist 文件中设置某种属性来阻止保留快照? 附:我还使用了UIApplicationExitsOnSuspend 属性来阻止应用程序在后台运行。

【问题讨论】:

有一个UIApplicationDidEnterBackgroundNotification 可以收听。如果发送此通知,您可以在拍摄快照之前进行 UI 调整(隐藏个人数据等)。详情请见in this support document from Apple。不过,不知道如何在科尔多瓦做到这一点。 这并不能完全回答我的问题,我知道 iOS 中的应用程序状态,但问题是我正在从配置文件构建应用程序,并且无法快速完成任何设置,甚至plist 文件,因为它们将立即被 cordova 配置覆盖。有一种方法可以直接从 cordova 将记录添加到 .plist 文件中。 你不能使用 onPause 和 onResume 事件吗? 并非如此,因为有许多未连接的单独视图,我不想对它们中的每一个进行硬编码以响应系统事件。 【参考方案1】:

有一些插件可以阻止屏幕截图或替换应用程序的快照

https://github.com/devgeeks/PrivacyScreenPlugin

https://github.com/hellojianfeng/PrivacyScreenPlugin

https://github.com/lifeofcoding/cordova-blur-app-privacy-screen

另外,要在 .plist 上写,你可以创建一个插件并使用 config-file 标签

<config-file target="*-Info.plist" parent="KeyToWrite">
  //Values to write
</config-file>

或使用this one,它允许您从 config.xml 执行相同操作

或者创建一个hook

【讨论】:

谢谢,顺便说一下,Cordova 项目不再需要单独的插件。现在可以直接将 添加到 config.xml 不,这不是真的,目前仅支持 edit-config 并且仅适用于 android。在 iOS 上,config.xml 尚不支持编辑配置和配置文件。 有一个问题需要添加支持,所以也许有人实现了它而我们没有意识到issues.apache.org/jira/browse/CB-11968 如果你让配置文件工作,你为什么不回答你自己的问题呢? ***.com/questions/44495518/…我肯定会支持它 如果它工作,它不需要是最新的。它不是一个需要不断更新的复杂插件

以上是关于使用 Cordova 防止 iOS 应用程序保留屏幕快照的主要内容,如果未能解决你的问题,请参考以下文章

如果 Cordova.js 文件保留在服务器上,iOS App Rejection

如何防止我的 Phonegap 应用在 ios 上全屏播放视频?

Cordova - 如何使用闪屏作为正文背景

ios上我的cordova应用程序底部的空白

Phonegap/cordova IOS横向视频

Cordova/Phonegap iPhone 闪屏错误