WidgetKit 安全性
WidgetKit 是一个可供开发者提供小组件和手表复杂功能的框架。这两者均可能显示敏感信息,且可被人清楚看见,尤其是在配备全天候显示屏的设备上。
在 iOS 中,用户可以配置是否在锁定屏幕上和全天候显示启用时显示敏感数据。在“设置”中,用户可以在“设置”>“面容 ID 与密码”的“锁定时允许访问”部分中停用锁屏小组件的数据访问。
在 Apple Watch 上,用户可以配置是否在全天候显示启用时显示敏感数据,方法是选取“设置”>“显示与亮度”>“全天候显示”>“隐藏敏感复杂表盘”。用户还可以选择针对所有或单个复杂功能显示编校内容。
如果用户选择隐藏其视为私密的内容,WidgetKit 会显示占位符或编校内容。若要配置编校内容,开发者必须:
1.应用 redacted(reason:)
回调。
2.宣告 privacy
属性。
3.提供自定义占位符视图。
开发者还可使用 unredacted()
视图修饰符让视图以未编校的形式呈现。
除了将单个视图标记为隐私敏感性,开发者还可以将“数据保护”功能添加到小组件扩展作为替代,例如在全部小组件内容均为隐私敏感性内容时。除非用户将其设备解锁至与所选隐私级别相匹配的状态,否则 WidgetKit 会显示占位符,而非小组件内容。开发者必须在 Xcode 中为小组件扩展启用“数据保护”功能,然后将 Data Protection
授权设为与所想提供的隐私级别相符的值:
NSFileProtectionComplete
NSFileProtectionCompleteUnlessOpen
WidgetKit 会在设备被密码锁定时隐藏这些小组件的内容并显示占位符,直到用户重新启动设备后进行认证。另外,这些 iOS 小组件不可作为 iPhone 小组件在 Mac 上使用。