cod*_*MAx 14 widget swift widgetkit swiftui ios14
@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.")
}
}
Run Code Online (Sandbox Code Playgroud)
如何从我的主应用程序获取数据到小部件?
paw*_*222 31
您可以为您的小部件和应用程序添加AppGroup功能(这里有一个很好的解释如何添加它)。
代替
UserDefaults.standard
Run Code Online (Sandbox Code Playgroud)
只需UserDefaults为您的 AppGroup使用共享:
UserDefaults(suiteName: <your_app_group>)
Run Code Online (Sandbox Code Playgroud)
然后你可以像这个答案中解释的那样读/写数据。
使用 AppGroup 权利,您可以访问共享文件容器:
let containerURL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: <your_app_group>)!
Run Code Online (Sandbox Code Playgroud)
并访问这样的网址:
let someFileURL = containerURL.appendingPathComponent("SomeFile.txt")
Run Code Online (Sandbox Code Playgroud)
然后您可以使用您的共享文件容器,如本答案中所述:
你也可以创建一个共享的 CoreData 容器:
let storeURL = containerURL.appendingPathComponent("DataModel.sqlite")
let description = NSPersistentStoreDescription(url: storeURL)
let container = NSPersistentContainer(name: "DataModel")
container.persistentStoreDescriptions = [description]
container.loadPersistentStores { ... }
Run Code Online (Sandbox Code Playgroud)
然后您可以使用您的共享 CoreData 容器,如本答案中所述:
这是一个GitHub 存储库,其中包含不同的 Widget 示例,包括 App Group Widget。
| 归档时间: |
|
| 查看次数: |
6349 次 |
| 最近记录: |