如何解决是否可以在 iOS 13 中运行 WidgetKit 代码?
我正在创建一个需要有一个小部件的项目。 我的项目是使用 Xcode 12.4 创建的,我的 iOS App 支持的最低 iOS 版本是 iOS 13,因此我的 App 的目标部署 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 14 之前的 iOS 版本中创建今日视图小部件的折旧 api。如果您想要一个可以在运行 iOS 13 或更早版本的设备上的今日视图菜单中使用的小部件,那么您需要使用通知中心框架。但是,此框架与 WidgetKit 的工作方式不同。您需要为它们创建完全不同的小部件才能与通知中心一起使用。要了解有关通知中心的更多信息,请参阅 Apple 的文档 here。
总的来说,我的建议是,如果您正在尝试为您的应用创建小部件,那么创建支持 iOS 13 及更早版本的小部件是不值得的。一方面,这些小部件仅在今日视图中可用,而不在主主屏幕上可用。此外,与 iOS 14 相比,很少有用户仍然运行 iOS 13,因此支持少量的额外用户群根本不值得。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。