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")取出后解析。

相关推荐
Daniel_Coder21 小时前
iOS Widget 开发-14:iOS 18 控制中心组件开发
ios·swift·widget·activitykit·widgetkit·控制中心组件
Daniel_Coder1 天前
iOS Widget 开发-13:Live Activity 实战详解
ios·swift·widget·widgetkit·controls·live activity
Daniel_Coder2 天前
iOS Widget 开发-12:Widget 深度链接与导航
ios·swiftui·swift·widget·intents
Daniel_Coder2 天前
iOS Widget 开发-11:Widget 交互按钮实战(iOS 17+ App Intents)
ios·swiftui·swift·widget·link·appintents
东坡肘子2 天前
消失的 WWDC 愿望单 -- 肘子的 Swift 周报 #136
人工智能·swiftui·swift
浩宇软件开发2 天前
SwiftUI入门 10 分钟学会做一个 App 引导页
ios·swiftui·swift
sakiko_5 天前
Swift报错合集(Xcode编译器)
开发语言·swiftui·xcode·swift·uikit
Joseph188 天前
深度拆解 DanceUI:从声明式视图到原生渲染的全链路技术解析
ios·swiftui
唐诺9 天前
iOS UI 开发完全指南:UIKit 与 SwiftUI
ui·ios·swiftui
东坡肘子9 天前
CocoaPods 正在退场,SwiftPM 才刚到第二章 -- 肘子的 Swift 周报 #135
flutter·swiftui·swift