@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)
如何从我的主应用程序获取数据到小部件?
如何创建一个AppIntent
将在您的应用程序进程中运行并在您的小部件中使用它的程序Button
?我创建了一个新文件,将其添加到我的应用程序的目标中,创建了我的 AppIntent 结构,然后向我的小部件添加了一个按钮:Button(intent: TestIntent()) { Text("Test") }
。这会导致编译时错误Cannot find \'TestIntent\' in scope
,这是有道理的,因为我尝试使用它的小部件扩展中不存在此代码。但是向小部件添加交互性的文档指出:
\n\n对于小部件,创建一个采用 AppIntent 协议的新结构并将其添加到您的应用程序目标中...在协议\xe2\x80\x99s 所需的 Perform() 函数中,添加您想要提供给应用程序的操作的代码小部件。
\n
和
\n\n\n如果您采用 AppIntent 协议,您可以将自定义应用程序意图添加到小部件扩展目标或应用程序目标。将其添加到应用程序目标是更好的选择,因为您可以在应用程序中重复使用添加到小部件的按钮或切换按钮。
\n
和
\n\n\n当用户与小部件中的按钮或切换开关交互时,系统会在您的 app\xe2\x80\x99s 进程中运行 Perform() 函数。
\n