第一步创建 小组件

这里创建的名字 叫nytty,样板代码如下

这里对UI进行改造

并且将刷新时间改为1s

struct Provider: IntentTimelineProvider {// 小组件的占位样式func placeholder(in context: Context) -> SimpleEntry {SimpleEntry(date: Date(), configuration: ConfigurationIntent())}//小组件的屏幕快照func getSnapshot(for configuration: ConfigurationIntent, in context: Context, completion: @escaping (SimpleEntry) -> ()) {let entry = SimpleEntry(date: Date(), configuration: configuration)completion(entry)}//设置时间线,简单理解就是生成屏幕快照的时间规则func getTimeline(for configuration: ConfigurationIntent, in context: Context, completion: @escaping (Timeline<Entry>) -> ()) {var entries: [SimpleEntry] = []// Generate a timeline consisting of five entries an hour apart, starting from the current date.//以下代码以小时间隔生成4个时间点的快照,对应四个小时的时间// 我们稍作修改,让他显示每一分钟的时间let currentDate = Date()for secondOffset in 0 ..< 60 {let entryDate = Calendar.current.date(byAdding: .second, value: secondOffset, to: currentDate)!let entry = SimpleEntry(date: entryDate, configuration: configuration)entries.append(entry)}let timeline = Timeline(entries: entries, policy: .atEnd)completion(timeline)}
}

那么在我们的手机桌面这个时间就会 1s刷新一次

WidgetBundle 实现自定义多个小组件

/**让小组件展示两种布局样式的组件*/@main
struct MyWidgetGroup: WidgetBundle{@WidgetBundleBuildervar body:some Widget{TimerWidget1()TimerWidget2()}
}struct TimerWidget1: Widget {let kind: String = "eytty"//从模拟器可以看出,三种尺寸的小组件都是这个样式//那么如何让var body: some WidgetConfiguration {IntentConfiguration(kind: kind, intent: ConfigurationIntent.self, provider: TimeWidgetProvider()) { entry inTimeWidgetEntryView(entry: entry)}//这里自定义选择面板的标题和介绍.configurationDisplayName("NextSpace Widget").description("This is an flowus widget.")//设置适配的小组件类型  .supportedFamilies([.systemSmall]) 这样就只有最小模式了.supportedFamilies([.systemSmall])}
}struct TimerWidget2: Widget {let kind: String = "eytty"//从模拟器可以看出,三种尺寸的小组件都是这个样式//那么如何让var body: some WidgetConfiguration {IntentConfiguration(kind: kind, intent: ConfigurationIntent.self, provider: TimeWidgetProvider()) { entry inTimeWidgetEntryView(entry: entry)}//这里自定义选择面板的标题和介绍.configurationDisplayName("Flowus Widget").description("This is an test widget.")//设置适配的小组件类型  .supportedFamilies([.systemSmall]) 这样就只有最小模式了.supportedFamilies([.systemMedium])}
}

Widget Extention开发笔记相关推荐

  1. Android开发笔记(序)写在前面的目录

    知识点分类 一方面写写自己走过的弯路掉进去的坑,避免以后再犯:另一方面希望通过分享自己的经验教训,与网友互相切磋,从而去芜存菁进一步提升自己的水平.因此博主就想,入门的东西咱就不写了,人不能老停留在入 ...

  2. Android开发笔记(序)

    本开发笔记,借鉴与其他开发者整理的文章范例与心得体会.在这里作为开发过程中的一个总结与笔记式记录. 如有侵犯作者权益,请及时联系告知删除.俗话说:集百家成一言,去粕成金. ************** ...

  3. Android开发笔记(序)写在前面的目录大全

    转自  湖前琴亭 的博客https://blog.csdn.net/aqi00/article/details/50012511 知识点分类 一方面写写自己走过的弯路掉进去的坑,避免以后再犯:另一方面 ...

  4. Andriod开发之二十:Android开发笔记(序)写在前面的目录

    https://blog.csdn.net/aqi00/article/details/50038385 知识点分类 一方面写写自己走过的弯路掉进去的坑,避免以后再犯:另一方面希望通过分享自己的经验教 ...

  5. 【QtDesigner 开发笔记】在PyCharm中配置、使用方法、信号与槽、菜单、Tab Widget、子窗口

    QtDesigner开发笔记 在PyCharm中配置QtDesigner和Pyuic QtDesigner使用:跑起一个最简单的项目 QtDesigner中使用信号与槽 方法1:设计器中连接信号与槽 ...

  6. Nokia Widget 应用开发培训笔记

    Nokia Widget 应用开发培训笔记 今天参加了Nokia在上海举办的widget开发技术培训会议,会议选址在上海巴黎春天大酒店,一家五星级酒店的300人会议室:培训间隙提供咖啡荼点,中午提供免 ...

  7. 安卓开发笔记——自定义广告轮播Banner(实现无限循环)

    关于广告轮播,大家肯定不会陌生,它在现手机市场各大APP出现的频率极高,它的优点在于"不占屏",可以仅用小小的固定空位来展示几个甚至几十个广告条,而且动态效果很好,具有很好的用户& ...

  8. android大疆飞控界面,DJI Android SDK 开发笔记(入门篇)

    ##大疆SDK开发笔记## #1.文档相关 2.Android SDK文档 接入Android的SDK都在这部分,飞控相关的接口. 3.Android UX SDK文档 大疆自定义的组件,已经跟飞机关 ...

  9. 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:离线矢量数据同步...

    1.前言 上一篇文章中我们实现了离线要素的编辑操作,这一篇中主要介绍离在线一体化技术中最后一个环节离线数据的同步功能,通过对数据的上传,服务器端的版本化管理,实现数据生产管理的整个流程. 转载请注明出 ...

最新文章

  1. android荧光进度条,CSS3 彩色荧光棒进度条
  2. 【Android游戏开发十五】关于Android 游戏开发中 OnTouchEvent() 触屏事件的性能优化笔记! .
  3. C1之路 | 训练任务01-进制与信息编码
  4. php缓存变量_PHP 从缓存中取出存储的变量
  5. [转载]项目风险管理七种武器-霸王枪
  6. Ms sqlserver闪退----“转载的知识”
  7. python判断_轻松python文本专题-判断对象里面是否是类字符串(推荐使用isinstance(obj,str))...
  8. Java 蓝桥杯 判断闰年
  9. 2018.8.2 python中is和==的区别
  10. CentOS Samba服务器的搭建与配置(share共享模式)
  11. WDCP(WDlinux Control Panel) mysql/add_user.php、mysql/add_db.php Authentication Loss
  12. 传智播客Java引用和数值类型思考
  13. 从零开始配置vim(22)——lsp简介与treesitter 配置
  14. Java字符串查找第一个不重复字符_java如何实现获取字符串中第一个出现不重复的字符...
  15. layabox定时器
  16. 【python爬虫】http.cookiejar库之CookieJar,模拟登录与访问
  17. 2019计算机专业英语国家线,2019英语一国家线多少
  18. java计算机毕业设计教师管理系统源码+mysql数据库+系统+lw文档+部署
  19. 南昌大学计算机考研2021,2021南昌大学考研参考书目
  20. 三大门派var,const,let之间的纠纷

热门文章

  1. 用Dockerfile构建MySQL镜像并实现容器启动过程中MySQL数据库系统的初始化
  2. Python程序题练习
  3. touchID 和 FaceID~2
  4. java获取生僻字_生僻字与16进制的转换
  5. 樱桃一次吃多少合适 这些知识一定要关心
  6. 大数据应用对企业税务风险管理影响
  7. win2016开启ntp_WinServer 2016域控设置NTP服务器
  8. 【C语言】打印一个爱心
  9. Golang中的runtime.Caller理解
  10. Clearing orphaned inode