问题描述
我有一个显示一些敏感数据的小部件。我们知道 iOS 小部件可以放置在主屏幕和今日小部件页面上。
Today widget page
页面即使在锁定状态下也可以看到!这是出现的问题,如果用户锁定了他们的手机,我想隐藏内容。
我可以在 iOS Screen Time
小部件中看到这种行为。如果我们锁定手机,则不会暴露任何数据。一旦我解锁(也就是激活面容 ID),所有数据都是可见的。
锁定状态
解锁状态
解决方法
您可以通过启用数据保护功能来实现
https://developer.apple.com/documentation/widgetkit/creating-a-widget-extension
您需要设置数据保护权利
NSFileProtectionComplete 或 NSFileProtectionCompleteUnlessOpen,设备被锁定。
在 Swift 5.5 iOS 15+ 中有一个新的 ViewModifier
.privacySensitive(true)
只需将其添加到包含敏感内容的 View