用途:该技能面向使用 Apple WidgetKit 框架开发跨平台“可扫视、及时”体验的场景,覆盖 iOS、iPadOS、macOS、watchOS、visionOS 上的小组件、实时活动(Live Activities)、手表复杂功能与控件。
主要能力:
- 创建 Widget 扩展(File → New → Target → Widget Extension,静态小组件取消勾选 Include Live Activity 与 Include Configuration App Intent)。
- 定义最小 Widget 结构,需包含 Widget 协议、TimelineProvider 与 SwiftUI 视图(@main 结构体、StaticConfiguration、supportedFamilies 等)。
- 支持多种小组件尺寸与家族:systemSmall、systemMedium、systemLarge、systemExtraLarge,以及 accessoryCircular、accessoryRectangular、accessoryInline、accessoryCorner,并可按平台区分用途。
- 使用 @Environment(.widgetFamily) 适配不同家族布局;使用 @Environment(.widgetRenderingMode) 适配 fullColor、accented、vibrant 渲染模式。
- 交互能力(iOS 17+):Button(intent:)、Toggle(isOn:intent:),以及 widgetURL 深链与 Link。
- 配置类型:StaticConfiguration、AppIntentConfiguration、ActivityConfiguration。
- 常见模式:通过 App Groups 的 UserDefaults(suiteName:) 或共享容器与主应用共享数据;用 WidgetCenter.shared.reloadTimelines(ofKind:) 或 reloadAllTimelines() 强制刷新;用 .privacySensitive() 在锁屏时遮蔽敏感内容。
核心约束:不支持实时更新,依赖时间线且系统批量刷新;每天刷新预算约 40–70 次(取决于使用情况);不支持持续动画,仅允许最长 2 秒的过渡动画;仅支持 SwiftUI,不支持 UIKit 视图;无状态,渲染之间不保留状态;视图内不进行网络请求,数据应在时间线提供者中获取。
该资料为技能文档概览,未提供收费、价格或安装命令等信息。