ios widget

411 阅读1分钟

配置这里就省略了,注意点说明下:

需要用swiftui;

代码里不支持异步操作,网络操作需要在getTimeline里面进行处理,图片之类的可以在这个方法进行下载,或者实现在主app里缓存好

widget主函数里只支持5个widget,多了会报错,如果需求是大于5个,则可以用supportedFamilies包含大中小号模式来进行处理,且通过custom intents来选择不同数据源/布局

IntentHandler是xcode自动生成的,不出现时,可以重启xcode

区分组件大小代码-该方法目前我在EntryView里面用过,但是getTimeline里面使用时一直返回的是中号尺寸,不知为何

@Environment(\.widgetFamily) var family
    
    @ViewBuilder
    var body: some View {
        switch family {
        case .systemSmall:
            Text("小组件-中杯")
        case .systemMedium:
            Text("小组件-大杯")
        case .systemLarge:
            Text("小组件-特大杯")
        default:
            Text("小组件-默认给个中杯的")
        }
    }