SuperAPI AI 工具集

widgetkit

编程与开发

查看项目

更新于 10-15 22:38

技能介绍

用途:该技能面向使用 Apple WidgetKit 框架开发跨平台“可扫视、及时”体验的场景,覆盖 iOS、iPadOS、macOS、watchOS、visionOS 上的小组件、实时活动(Live Activities)、手表复杂功能与控件。

主要能力:

  1. 创建 Widget 扩展(File → New → Target → Widget Extension,静态小组件取消勾选 Include Live Activity 与 Include Configuration App Intent)。
  2. 定义最小 Widget 结构,需包含 Widget 协议、TimelineProvider 与 SwiftUI 视图(@main 结构体、StaticConfiguration、supportedFamilies 等)。
  3. 支持多种小组件尺寸与家族:systemSmall、systemMedium、systemLarge、systemExtraLarge,以及 accessoryCircular、accessoryRectangular、accessoryInline、accessoryCorner,并可按平台区分用途。
  4. 使用 @Environment(.widgetFamily) 适配不同家族布局;使用 @Environment(.widgetRenderingMode) 适配 fullColor、accented、vibrant 渲染模式。
  5. 交互能力(iOS 17+):Button(intent:)、Toggle(isOn:intent:),以及 widgetURL 深链与 Link。
  6. 配置类型:StaticConfiguration、AppIntentConfiguration、ActivityConfiguration。
  7. 常见模式:通过 App Groups 的 UserDefaults(suiteName:) 或共享容器与主应用共享数据;用 WidgetCenter.shared.reloadTimelines(ofKind:) 或 reloadAllTimelines() 强制刷新;用 .privacySensitive() 在锁屏时遮蔽敏感内容。

核心约束:不支持实时更新,依赖时间线且系统批量刷新;每天刷新预算约 40–70 次(取决于使用情况);不支持持续动画,仅允许最长 2 秒的过渡动画;仅支持 SwiftUI,不支持 UIKit 视图;无状态,渲染之间不保留状态;视图内不进行网络请求,数据应在时间线提供者中获取。

该资料为技能文档概览,未提供收费、价格或安装命令等信息。