watchOS 并发症 - 如何告诉 watchOS 更新时间线

Posted

技术标签:

【中文标题】watchOS 并发症 - 如何告诉 watchOS 更新时间线【英文标题】:watchOS Complication - How to tell watchOS to update the Timeline 【发布时间】:2017-12-18 08:01:10 【问题描述】:

我为带有时间旅行的表盘编写了一个复杂功能。但是,我希望 watchOS 能够“刷新”时间线(比如每小时),以便它会删除当前时间线,然后再次调用 getTimelineEntries 以获得新的时间线。

有可能吗?谢谢。

【问题讨论】:

【参考方案1】:

如果要在当前钟面的不同插槽中安装多个应用程序的复杂功能,最好调用“reloadTimelineForComplication:”来处理所有活动的复杂功能。

for (CLKComplication* complication in CLKComplicationServer.sharedInstance.activeComplications)

    //NSLog(@"Reloading Timeline for Complication: %@", complication);
    [CLKComplicationServer.sharedInstance reloadTimelineForComplication:complication];

来自文档:CLKComplicationServer.activeComplications:此属性包含一个 CLKComplication 对象数组,每个对象代表当前显示在钟面上的复杂功能的一个版本。此数组通常没有条目或只有一个条目,但如果您的复杂功能安装在钟面上的多个插槽中,它可能有多个条目。

【讨论】:

【参考方案2】:

当你想刷新并发症数据时,你可以像这样触发刷新,

[[CLKComplicationServer sharedInstance] reloadTimelineForComplication:[[[CLKComplicationServer sharedInstance] activeComplications] firstObject]];

参考可以查看here

【讨论】:

以上是关于watchOS 并发症 - 如何告诉 watchOS 更新时间线的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SwiftUI 中的 WatchOS 中实现 handleUserActivity?

如何创建苹果 watchOS 5 的复杂功能?

WatchOS 并发症

watchOS 并发症 - 重新加载超过每日预算?

watchOS 不进入 ComplicationController

tintColor 不适用于 watchOS 5 复杂功能