如何在手表复杂功能中进行倒计时?

How to make count-down within watch complication?

我正在研究一个应该在几分钟内提供倒计时的复杂功能?假设用户将其指定为 25 分钟,那么复杂功能应该每分钟更新一次计数,直到达到 0。

根据我的研究,应该使用 scheduleBackgroundRefresh API 调用来更新并发症。但是,苹果似乎并不能保证 watchOS 唤醒应用程序的准确时间。此外,每分钟安排一次刷新似乎是错误的做法。

我还想在 CLKComplicationDataSource 的实现中提供 getTimelineEntries 内的所有值。然而,这也没有奏效。

有没有一种合适可靠的方法来制作这种类似于秒表的复杂功能?

使用 CLKRelativeDateTextProvider 成功了。来自苹果文档:

You use a relative date text provider to implement timers or other relative time values in an efficient way. Instead of using multiple timeline entries to replicate a countdown timer, create a single timeline entry with a relative date text provider.