首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >锁屏快捷小部件仅供iOS 16用户使用

锁屏快捷小部件仅供iOS 16用户使用
EN

Stack Overflow用户
提问于 2022-06-30 16:50:20
回答 2查看 1.2K关注 0票数 5

我有多个小部件,用于iOS 14及以上的用户。但是有了新的锁屏小部件,它只对iOS 16用户可用。我如何才能为iOS 16用户制作最后两个小部件?如果我取消评论的顶部,那么我相信它将使所有的小部件只对iOS 16用户可用,但我不能这样做,我希望我的用户能够继续使用主屏幕小部件,如果他们在iOS 14-15。

代码语言:javascript
复制
import WidgetKit
import SwiftUI


//@available(iOSApplicationExtension 16.0, *)
@main
struct Widgets: WidgetBundle {
    @WidgetBundleBuilder
    var body: some Widget {
        Widget1()
        Widget2()
        Widget3()
        LockscreenWidget1()
        LockscreenWidget2()
    }
}
EN

回答 2

Stack Overflow用户

发布于 2022-09-02 12:49:53

您需要在Widget逻辑中配置它。

例如:

代码语言:javascript
复制
@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)
    }
}
票数 8
EN

Stack Overflow用户

发布于 2022-10-09 08:50:11

代码语言:javascript
复制
var body: some Widget {
    widgets()
}

func widgets() -> some Widget {
    if #available(iOS 16.0, *) {
        return WidgetBundleBuilder.buildBlock(LockscreenWidget1(), Widget1())
    } else {
        return Widget1()
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72819402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档