通过使用URL请求获取数据来更新Apple Watch Complication

时间:2019-03-26 16:59:35

标签: watchkit watch-os apple-watch-complication clockkit watch-os-5

我遇到的麻烦是需要通过从服务器获取数据来偶尔进行一次更新。

我正在尝试从手表中获取数据。我是通过安排WKRefreshBackgroundTask来实现的。当此任务触发时,我启动URL会话以从服务器获取一些JSON数据。

成功获取数据后,我通过调用WKApplicationRefreshBackgroundTask来完成setTaskCompletedWithSnapshot(false)

这一切似乎都可以正常工作,但是,我宁愿在WKURLSessionRefreshBackgroundTask之后创建一个WKApplicationRefreshBackgroundTask来在后台下载它,并在后台任务中花费更少的时间。我认为这是不可能的,我没有下载或上传文件。如果我正确理解带有WKURLSessionRefreshBackgroundTask的{​​{1}},只能用于URLSessionConfiguration.background(withIdentifier:)URLSessionUploadTask s,那么我就不得不忘记这个想法。 (如果我误解了,请纠正我。)

现在我遇到的最大问题是,当手表被锁定(从手腕上取下,放在充电座上等)时,URL请求未执行。因此,数据不会被更新。我们应该如何处理呢?当手表锁定时,并且解锁手表后,活动编译只会变得暗起来。我们是否可以做些什么来了解手表是否已锁定/未锁定?

使用URLSessionDownloadTask从手表中获取数据是否是正确的方法,还是唤醒手机并使用WKApplicationRefreshBackgroundTask使电话请求数据更好?如果是这样:您将使用哪些WatchConnectivity函数来实现这一目标?

如果直接从Watch上获取数据是一种方法:我可以将WCSessionDelegate设置为在请求完成之前完成,还是应该等到请求完成之后? (即应该在什么时间调用WKApplicationRefreshBackgroundTask)。

我阅读了大量的文章,并观看了多个视频。但是,我仍然很难找到正确的体系结构,以便从服务器获取编译数据并获得可靠的工作。

希望有人能对此事有所启发。

0 个答案:

没有答案