首页 > 解决方案 > iOS 14 Widgets 具有更强大的配置能力

问题描述

我想为我的 iOS 14 小部件添加更多高级配置选项。这是我一直在使用的:

struct WidgetConfig {
    let id: UUID
    let name: String
    let backgroundColor: Color?
    let backgroundImage: Data?
    let fontColor: Color
    let fontStyle: Font.Design
    let accentColor: Color
}

用户可以在应用程序中创建配置。

我尝试将配置存储在 CoreData 中,但在 IntentHandler 中获取它们非常缓慢且不可靠。小部件通常只是呈现黑色。

实施这一点的更好策略是什么?

标签: iosswiftwidgetkit

解决方案


自定义小部件的官方方法是使用 Siri 意图文件。这将启用您在长按小部件并选择编辑(小部件翻转)时看到的选项。

为了使用户可以轻松访问最相关的信息,小部件可以提供可自定义的属性。例如,用户可以为股票报价小部件选择特定股票,或为包裹递送小部件输入跟踪号。小部件通过使用自定义意图定义来定义可自定义的属性,这与 Siri 建议和 Siri 快捷方式用于自定义这些交互的机制相同。要将可配置属性添加到您的小部件:

  1. 向您的 Xcode 项目添加定义可配置属性的自定义意图定义。
  2. 在您的小部件中使用IntentTimelineProvider将用户的选择合并到您的时间线条目中。
  3. 如果属性依赖于动态数据,请实现 Intents 扩展。

– 来自 Apple 的文章:制作可配置的小部件

我还可以推荐一个关于该主题的详细 WWDC 会议:https ://developer.apple.com/wwdc20/10194


推荐阅读