iOS Widget

1. Widget 

  • iOS通过在手机屏幕上添加小组件,小组件内容一般是展示用户所关心的内容
  • 小组件不是实时刷新,通过设置时间间隔进行刷新(官方文档上设置的是15分钟刷新一次)
  • 小组件可以设置点击事件,通过点击可以打开主程序,通过SchemeUrl 可以对点击事件进行处理

2 Widget Size

  •  具有三种尺寸: systemSmall(2 * 2 应用图标)、systemMediym (2 * 4 应用图标)、 systemLarge(4 * 4 应用图标) 分别对应下图

  

3 Widget 交互

  小组件不可交互,只能点击; 小组件不可滑动切换内容等交互,只能通过点击进行交互

  点击事件分为 widgetUrl 和 Link;并且widgetUrl和Link 只能和主程序交互

  Widget中不能放置动图和视频

  3.1 widgetUrl

  widgetUrl 是针对整个小组件 点击小组件响应(如果有Link 就响应Link)  

  3.2 Link

  LinK 给元素添加点击事件, Link 对 systemSmall样式的组件不生效(systemSmall 样式的小组件只响应widgetUrl) 

4 Widget 刷新

  4.1 通过主程序刷新

  通过在App中调用

WidgetCenter.shared.reloadAllTimelines()
WidgetCenter.shared.reloadTimelines(ofKind: "")

  4.2 在 getSnapshot 中刷新 

  打开管理App的小组件页面 小组件会进行刷新

  4.3 设置刷新时间

  通过TimeLine进行设置(刷新时间有误差)

  •  .never  不进行刷新,只能通过App进行刷新
  • .after  每次刷新后设置下次刷新间隔
  • .atEnd   一次性设置多个刷新时间间隔,全部结束后会再次通过TimeLine设置

5 开发环境

  手机系统:iOS14以上

  开发软件:xcode12以上

  开发语言:SwiftUI

6 使用主程序数据

  Widget 和 主程序 可以共用的数据有 UserDefaults 和 FileManger 

  数据互通配置:

  1. 在Apple 开发者管理平台上 注册 App Groups

  2. 分别在主程序和Widge target的 Sign&Capabilities 中设置 AppGroups

   

posted @ 2022-05-11 11:30  王传奇  阅读(826)  评论(0编辑  收藏  举报