如何创建一个在应用程序进程中运行并在小部件的按钮中使用的AppIntent?我创建了一个新文件,将其添加到我的应用程序目标中,创建了我的AppIntent结构,然后在我的小部件中添加了一个按钮:
Button(intent: TestIntent()) { Text("Test") }
。这导致了一个编译时错误Cannot find 'TestIntent' in scope
,这是有道理的,因为我尝试在小部件扩展中使用它的代码不存在。但是关于向小部件添加交互性的文档中提到:
对于小部件,创建一个新的结构体,采用AppIntent协议,并将其添加到您的应用程序目标中... 在协议的必需perform()函数中,添加您想要在小部件中提供的操作的代码。
和
如果您采用AppIntent协议,可以将自定义的应用程序意图添加到小部件扩展目标或应用程序目标中。将其添加到应用程序目标中更好,因为您可以在应用程序中重复使用添加到小部件中的按钮或切换。
和
当用户在您的小部件中与按钮或切换进行交互时,系统会在您的应用进程中运行perform()函数。