You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在iPhone锁定时隐藏iOS 14小组件的内容?

问题描述

我有一个展示敏感数据的小组件。我们都知道,iOS小组件既可以放置在主屏幕,也可以放在Today widget page页面。
Today widget page页面即便处于手机锁定状态也可见!这就产生了如下问题:我希望在用户锁定手机时隐藏小组件内容。
我发现iOS自带的Screen Time小组件已经实现了该特性:手机锁定时不会暴露任何数据,一旦完成解锁(即激活Face ID),所有数据就会正常展示。

效果演示

锁定状态

锁定状态

解锁状态

解锁状态

实现方案

你可以直接使用WidgetKit提供的系统级API实现该效果,不需要自行监听设备锁定状态:

  • 给需要隐藏的敏感视图添加privacySensitive()修饰符即可,系统会自动处理显隐逻辑:
    • 设备处于锁定状态时,标记为隐私敏感的内容会被自动隐藏,替换为模糊占位样式
    • 设备解锁后,内容会自动正常展示
  • 代码示例:
struct SensitiveWidgetEntryView : View {
    var entry: WidgetEntry
    var body: some View {
        VStack {
            // 你的敏感数据视图
            Text("账户余额")
            Text("隐私统计数据")
        }
        // 标记整个小组件内容为隐私敏感
        .privacySensitive()
    }
}
  • 如果你不需要隐藏整个小组件,也可以仅给需要隐藏的单个子视图添加该修饰符。

内容的提问来源于stack exchange,提问作者Azhagusundaram Tamil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 17:15:03