Demo Git Hub: https://github.com/wangxiaobai1840/LockScreenWidgets
1. 简介
从iOS16和watchOS9开始,苹果支持应用程序中小组件同时能够在iPhone 锁屏 和 watch表盘上展示。可以让用户更方便的获取应用的相关信息。
屏幕小组件和watch表盘应用使用WidgetKit和SwiftUI创建和开发,使我们能够:
a. 更新现有的 iOS 主屏幕和watch上今日视图小部件的代码以支持 iPhone 上的锁屏小部件。
b. watchOS 应用程序中使用WidgetKit替换ClockKit,让我们的iOS和watchOS 应用程序之间复用更多的代码
c. 可以创建同时支持iPhone 锁屏和watch小组件
d. 在应用程序中添加对iOS或者watchOS的支持,并创建小组件
2. Widget介绍以及示例
2.1. Widget familya##
2.1.1. Accessing system families
支持平台: iOS 14.0+ iPadOS 14.0+ macOS 11.0+ Mac Catalyst 14.0+
2.1. Accessing accessory families
支持平台:iOS 16.0+ iPadOS 16.0+ Mac Catalyst 16.0+ watchOS 9.0+
2.2. Widget创建
a. 创建新的project
b. 选择project → project → 添加新的target
c. 如果要创建选中新建watchOS Extension,target → architectures → supported Platforms → watchOS 。否则直接下一步
d. 选择target → target → 添加Widget Extension
2.3. Widget结构介绍
2.3.1. Provider
为小组件展示提供一切必要信息的结构体
2.3.2. TimelineEntry
渲染 Widget 所需的数据模型
2.3.3. EntryView
2.3.4. @main
Widget的主入口
2.4. 锁屏小组件设置
a. 锁屏时长按屏幕设置
b. 设置 → 墙纸
c. 设置 → 专注模式, 为单个专注模式添加组件
3. 相关资料
官方文档: https://developer.apple.com/documentation/widgetkit/creating-lock-screen-widgets-and-watch-complications
WWDC:https://developer.apple.com/videos/play/wwdc2022/10050/