1、Include Live Activity : 灵动岛、实时活动相关
2、Include Configuration App Intent:iOS 17以上小组件配置相关
3、policy
表示小组件时间线的刷新策略,有以下三种:never
:永不刷新,atEnd
:最后一个TimelineEntry
用完之后立即刷新,after(Date)
:指定日期之后刷新小组件
4、每个活跃时间段不能超过28s,例如getTimeLine
到completion
必须在28s以内完成,否则刷新超时
5、有人测试过小组件24小时可以获得50-60次刷新,时间线刷新策略的时间设置大概是15-60分钟,如果主App在前台同时调用多次刷新,系统会合并,直到主App退到后台,小组件的时间线才会开始刷新,因此不用担心主App刷新调用次数过多。
6、和主APP通讯方法 有2中,自选即可
UserDefaults(suiteName: "group.com.xxxx.app")
let groupURL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.com.xxx.app")let fileURL = groupURL?.appendingPathComponent("app.json")
7、主App活跃时,可以通过WidgetKit
提供的刷新时间线的方法通知小组件时间线刷新
WidgetCenter.shared.reloadAllTimelines() // 刷新所有小组件
WidgetCenter.shared.reloadTimelines(ofKind: "widgetKind") // 根据kind刷新小组件
8、代码配置widgetURL和Link点击对应位置可以打开APP