swift - 根据互联网连接刷新watchos应用程序

标签 swift swift3 watchkit watchos-3

我找到了关于刷新 watchapp UI 及其复杂性的过程的精彩描述 here 。这对我来说很有效,尽管有时 UI 仅在我实际将应用程序带到前台时才会更新(但这是另一个问题)。

到目前为止我一直在做的是:

1 - 我安排后台刷新;

2 - 当后台刷新任务被调用时,我调度一个后台downloadTask;

3 - 完成后,downloadTask 调用其委托(delegate)方法 (didFinishDownloadingTo),我在其中调用另一个方法来更新 UI、用新数据重新加载我的复杂性并安排快照刷新和另一个背景刷新。

这几乎工作正常(有我上面提到的偶尔出现的问题)。但我有时会 Handlebars 表调成飞行模式。这里发生的情况是调用了错误委托(delegate)方法,因此我安排了大约 1 小时的另一次应用程序刷新。如果仍处于飞行模式,它将在一小时内请求再次刷新,依此类推。

这种方法的问题是,当我关闭飞行模式时,应用程序需要很长时间才能更新其 UI,具体取决于下次更新的安排时间。

有人可以建议一种更好的方法来在恢复互联网连接后立即获取新数据吗?

最佳答案

目前(watchOS 3.2)watchOS 中没有框架可以告诉您设备何时连接到互联网。但是,您可以利用Reachability framework在您的 iOS 应用程序中,并使用 WatchConnectivity 框架在您的 Watch 应用程序可以刷新其 UI 时向其发出信号。

关于swift - 根据互联网连接刷新watchos应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43247598/

相关文章:

ios - 将流媒体视频(m3u8 文件)保存到图库中

ios - 在自定义 CALayer 上设置 contentScale 后,核心动画使用了太多内存

ios - 使用扩展创建自定义 UIButton

Swift 3 URL Session - 针对 URL 添加超时

ios - 使用 MMWormhole 库和 Watchkit 的 XCode 6.2 中的链接器命令失败

arrays - 如何在 Swift 中将正确位置的元素插入到排序数组中?

swift - 如何在Firebase的数据库中反射(reflect)UISegmentedControl的选择结果

Swift - 无法专门化非通用定义

arrays - WKPickerItems 和范围

objective-c - 将 Firebase 引用发送到 Apple Watch