是否可以 运行 WidgetKit 代码在 iOS 13 中?

Is it possible to run WidgetKit code in iOS 13?

我正在创建一个项目,该项目需要有一个 Widget。 我的项目是使用 Xcode 12.4 创建的,我的 iOS 应用程序支持的最低 iOS 版本是 iOS 13,因此我的应用程序的目标部署 iOS 版本是 iOS 13. 由于 WidgetKit 仅在 iOS 14 中可用,因此我为我的 Widget 创建了一个新目标,部署目标为 iOS 14.

是否可以将我的 Widget 的 iOS 版本部署到 iOS 13,以便我可以 运行 在 iOS 13 部 iPhone 中使用它?其实我试过了,但我收到一个错误“'main()' 仅在 iOS 14.0 或更高版本的应用程序扩展中可用”。我尝试在 @main 上方添加 @available 注释,但它不起作用。见下图。

我想完成这项工作,因为今天的小部件在 Xcode 12 中不再可用。我们仍然希望在用户 运行 正在 iOS 13 中显示一些小部件,例如日历和天气应用程序小部件。

WidgetKit

WidgetKit 框架仅在 iOS 14+ 中受支持,因此您不能将小部件的部署版本更改为 iOS 13,因为它低于最低 iOS 版本.要了解有关 WidgetKit 的更多信息,请参阅 Apple 的文档 here.

通知中心

这是在 iOS 之前的 iOS 版本中创建今日视图小部件的折旧 api 14. 如果您想要一个可以在今日视图菜单中使用的小部件devices 运行ning iOS 13 或更早版本,则需要使用通知中心框架。但是,这个框架的工作方式与 WidgetKit 不同。您需要为它们创建完全不同的小部件才能与通知中心一起使用。要了解有关通知中心的更多信息,请参阅 Apple 文档 here

总的来说,我的建议是,如果您正在尝试为您的应用程序创建小部件,那么创建支持 iOS 13 及更早版本的小部件是不值得的。首先,这些小部件仅在今天视图中可用,而不是在主屏幕上。此外,与 iOS 14 相比,很少有用户仍然 运行 iOS 13,因此根本不值得支持较小的额外用户群。