iOS 小组件开发

iOS14之后Apple引入了新的WidgetKit,舍弃了原有额TodayExtension。

开发准备:

新的WidgetExtension只能通过SwiftUI进行开发;

Widget有三种尺寸:systemSmall、 systemMedium、systemLarge,三种尺寸对应固定的UI类型布局,可以切换形态;

点击Widget默认打开主程序,也可以通过schemeUrl进入主程序后做出指定的反应;

Widget通过App Groups与主程序或其他子程序进行数据互通;

1 添加小组件

可以通过new -> file -> target 或者直接在general内通过加号直接添加target。

可以根据具体情况是否够炫intent,也可以不勾选在后面创建。

准备代码:

@main是小组件的入口

布局与SwiftUI相同,这里就不做赘述。

Configuration里可以添加各种未展示的枚举类型,通过创建intent进行模式切换。

可以通过WidgetCenter.shared.reloadAllTimelines()刷新所有时间线,或者通过WidgetCenter.shared.reloadTimelines(ofKind: "")刷新指定的小组件,因为小组件本身的缓存处理不太好,所以及时刷新很重要。

存储在AppGroups内的数据通过@AppStorage("name")取出后解析。

相关推荐
初级代码游戏22 分钟前
iOS开发 SwiftUI Text的基本用法
ios·swiftui·swift
汉秋2 天前
告别 GeometryReader:SwiftUI .visualEffect 实战解析
swiftui·swift
东坡肘子5 天前
Swift、SwiftUI 与 SwiftData:走向成熟的 2025 -- 肘子的 Swift 周报 #116
人工智能·swiftui·swift
guangzan6 天前
AI 结对编程:如何让 AI 跳出死循环?
swiftui·vibe coding
汉秋8 天前
SwiftUI 中的 compositingGroup():真正含义与渲染原理
swiftui·swift
汉秋9 天前
SwiftUI 中的 @ViewBuilder 全面解析
swiftui·swift
胖虎19 天前
SwiftUI 页面作为一级页面数据被重置问题分析
ios·swiftui·swift·state·observedobject·stateobject·swiftui页面生命周期
guangzan9 天前
AI 结队编程:解决 SwiftUI 窗口点击关闭按钮崩溃问题
swiftui·tca
1024小神9 天前
xcode 配置了AppIcon 但是不显示icon图标
ios·swiftui·swift