gpt4 book ai didi

swift - 在 iOS 14 的 SwiftUI 中的主应用程序和 WidgetKit 之间共享数据

转载 作者:行者123 更新时间:2023-12-03 09:17:06 24 4
gpt4 key购买 nike

@main
struct ClockWidgetExt: Widget {
private let kind: String = "ClockWidgetExt"

public var body: some WidgetConfiguration {
StaticConfiguration(kind: kind, provider: Provider(), placeholder: PlaceholderView()) { entry in
HomeTestView()
}
.configurationDisplayName("My Widget")
.description("This is an example widget.")
}
}
如何从我的主应用程序获取数据到 WidgetKit ?

最佳答案

您可以添加 应用组 Widget 和 App 的功能(here 是如何添加它的一个很好的解释)。

用户默认值
代替

UserDefaults.standard
只需使用共享 UserDefaults对于您的 AppGroup:
UserDefaults(suiteName: <your_app_group>)
然后你可以像在 this answer 中解释的那样读/写数据.
文件容器
使用 AppGroup 权利,您可以访问共享文件容器:
let containerURL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: <your_app_group>)!
并访问这样的网址:
let someFileURL = containerURL.appendingPathComponent("SomeFile.txt")
然后您可以使用您的共享文件容器,如本答案中所述:
  • How to read files created by the app by iOS WidgetKit?

  • 核心数据
    你也可以创建一个共享的 CoreData 容器:
    let storeURL = containerURL.appendingPathComponent("DataModel.sqlite")
    let description = NSPersistentStoreDescription(url: storeURL)

    let container = NSPersistentContainer(name: "DataModel")
    container.persistentStoreDescriptions = [description]
    container.loadPersistentStores { ... }
    然后您可以使用您的共享 CoreData 容器,如本答案中所述:
  • Fetch data from CoreData for iOS 14 widget

  • 这是一个 GitHub repository使用不同的 Widget 示例,包括 App Group Widget。

    关于swift - 在 iOS 14 的 SwiftUI 中的主应用程序和 WidgetKit 之间共享数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63922032/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com