使用 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 项目不再需要单独的插件。现在可以直接将以上是关于使用 Cordova 防止 iOS 应用程序保留屏幕快照的主要内容,如果未能解决你的问题,请参考以下文章
如果 Cordova.js 文件保留在服务器上,iOS App Rejection