微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

您如何管理iOS小部件后台请求?

如何解决您如何管理iOS小部件后台请求?

我正在尝试了解Widget background network requests的Apple文档。

要处理网络请求的结果,请对您的窗口小部件配置使用onBackgroundURLSessionEvents(matching:_ :)修饰符,然后执行以下操作:

  • 存储对completion参数的引用。您在处理所有网络事件之后调用完成处理程序。
  • 使用identifier参数查找启动后台请求时使用的URLSession对象。如果您的窗口小部件扩展名已终止,请使用标识符重新创建URLSession

关于第一个要点,这里指的是什么completion参数?是completion函数onBackgroundURLSessionEvents(matching:_:)参数,还是可能是IntentTimelineProvider的{​​{1}}的完成处理程序?如果是前者,这是否意味着在存在多个事件的情况下存储多个完成处理程序?调用该完成处理程序的目的是什么?

对于第二个要点,如何使用getTimeline(for:in:completion:)重新创建identifier?在URLSession中,您是否应该将配置保存到磁盘上以在稍后重新创建会话时访问?

要在网络请求完成后刷新窗口小部件的时间轴,请从您的代表的urlSessionDidFinishEvents实现中调用WidgetCenter方法

在这一部分中,似乎他们指的是调用方法getTimeline(for:in:completion:)。但是,这不会触发小部件的所有实例的刷新吗?还是系统知道只刷新调用它的那个?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。