用途:为 Flutter 应用添加原生主屏幕小组件(iOS 与 Android),并建立 Dart 与原生平台之间的数据共享。
主要能力:通过 home_widget 包实现文本数据写入与小组件刷新;iOS 侧使用 App Groups 与 WidgetKit(TimelineProvider 与 SwiftUI 视图),Android 侧使用 AppWidgetProvider、RemoteViews 与 XML 布局;可选将 Flutter UI 组件渲染为 PNG 图片后传给原生展示复杂界面。
必要用法:先添加依赖,执行 flutter pub add home_widget 与 flutter pub get。在 Dart 中设置 iOS App Group ID,调用 HomeWidget.setAppGroupId、saveWidgetData、updateWidget,其中 iOSName 与 androidName 必须与 Swift 结构体名和 Kotlin 类名完全一致。iOS 需在 Xcode 中为 Runner 与 Widget Extension 同时配置 App Group,App Group ID 必须以 group. 开头且三处一致。Android 需新建 App Widget 并实现 AppWidgetProvider 与 XML 布局。若需复杂 UI,使用 HomeWidget.renderFlutterWidget 生成静态图片,再在原生侧读取文件路径加载。
适用场景:需要在桌面展示新闻标题与描述等文本信息,或渲染图表等复杂 Flutter UI 的应用。
限制与注意:原生标识符不可更改且必须精确匹配;不得在原生小组件生命周期中直接渲染 Flutter UI,只能使用 renderFlutterWidget 生成图片;修改原生代码后需完整重新运行 flutter run;原生变更后通常需移除并重新添加桌面小组件;Android 小组件尺寸需按单元格计算,如 minWidth。修改原生文件后应运行 flutter build ios 或 flutter build apk 校验。资料未提供收费、价格或具体平台版本要求。