Mar*_*ark 6 iphone ios swift swiftui ios16
我有多个适用于 iOS 14 及更高版本用户的小部件。但对于新的锁屏小部件,它仅适用于 iOS 16 用户。如何只为 iOS 16 用户制作底部两个小部件?如果我取消注释第一行,那么我相信它将使所有小部件仅对 iOS 16 用户可用,但我不能这样做,我希望我的用户能够继续使用主屏幕小部件(如果他们使用的是 iOS 14)- 15.
import WidgetKit
import SwiftUI
//@available(iOSApplicationExtension 16.0, *)
@main
struct Widgets: WidgetBundle {
@WidgetBundleBuilder
var body: some Widget {
Widget1()
Widget2()
Widget3()
LockscreenWidget1()
LockscreenWidget2()
}
}
Run Code Online (Sandbox Code Playgroud)
您需要在 Widget 逻辑中配置它。
例如
@main
struct MyWidget: Widget {
private let supportedFamilies: [WidgetFamily] = {
if #available(iOSApplicationExtension 16.0, *) {
return [.systemSmall, .systemMedium, .systemLarge, .systemExtraLarge, .accessoryInline, .accessoryCircular, .accessoryRectangular]
} else if #available(iOSApplicationExtension 15.0, *) {
return [.systemSmall, .systemMedium, .systemLarge, .systemExtraLarge]
} else {
return [.systemSmall, .systemMedium, .systemLarge]
}
}()
var body: some WidgetConfiguration {
StaticConfiguration(kind: kind, provider: Provider()) { entry in
MyWidgetEntryView(entry: entry)
}
.configurationDisplayName("Demo Name")
.description("Description of the demo.")
.supportedFamilies(supportedFamilies)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1832 次 |
| 最近记录: |