iOS Widget 组件开发知识整理

1. 组件刷新时机

根据官方文档描述:

小组件预算的适用周期为 24 小时。WidgetKit 会根据用户的日常使用模式调整 24 小时窗口,这意味着每日预算不一定会在午夜重置。对于用户经常查看的小组件,每日预算通常包括 40 到 70 次刷新。这一速率可以大致换算为每 15 到 60 分钟重新载入一次小组件,但是由于涉及到多个因素,这些时间间隔通常会有所不同。

在下列情况中,WidgetKit 不会将重新载入次数计入小组件的预算:
1. 小组件的包含 App 在前台。
2. 小组件的包含 App 有活跃的音频或导航会话。
3. 系统语言区设置发生更改。
4. 动态类型或辅助功能设置发生更改。

TimeLine 刷新机制:

TimelineReloadPolicy
atEnd 当前组展示完成后请求,根据测试现象来看是当前Timeline里面的entry事件处理完成以后回再次 执行 getTimeline方法
never 永远不主动请求, 当前entry执行完毕以后 就结束了
after 设定一个刷新时间,到点请求,可以设置定时触发

关于刷新测试出来的一些情况:

  1. 如果当前widget没有在首页展示出来,刷新时间会晚一些。
  2. 系统调用下一次 getTimeLine 事件时间是不确定的,并不是严格按照我们写的时间
  3. 在debug调试的时候,并不会被限制70次刷新,刷新频率也基本上是按照代码设置的间隔进行刷新的,但是release情况并不会这样子。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容