【问题标题】:Get timeline entry and template used for active complication?获取用于活动并发症的时间线条目和模板?
【发布时间】:2016-03-24 02:22:42
【问题描述】:

我想有条件地在requestedUpdateDidBegin 函数中重新加载我的活动并发症,或者实际上告诉ClockKit 在当前时间线条目结束前 15 分钟设置下一次检查,但我怎么能在不知道是什么的情况下做到这一点目前的并发症?

这就是我想要做的:

    if let complications = CLKComplicationServer.sharedInstance().activeComplications {
        for item in complications {
            // Get timeline entry and template used?
        }
    }

对于当前的并发症,我只能获取家庭,但没有其他信息,例如时间线日期或使用的模板。有没有办法得到这个?

【问题讨论】:

  • 我正在尝试为当前的并发症刷新戒指。所以实际上我想获取当前的时间线条目并在它过期前 15 分钟刷新它。否则,戒指很快就会变得陈旧,并且只能大约每 30 分钟刷新一次。例如,如果我可以用相对日期填充填充分数,那就太好了。我的并发症几乎就像一个显示为戒指的计时器。
  • 不幸的是,没有相对的填充分数支持。 Feature request it. 但是,如果您只提供 getCurrentTimelineEntryForComplication,您可以(使用最短 10 分钟的预定更新间隔以使其保持新鲜,或者)通过偏移当前条目的日期来安排更新,如答案中所述。跨度>
  • 感谢您的解释和方法,当前的时间线功能将按照您的说法工作。我同时填写了一个功能请求。

标签: swift swift2 watchos-2 apple-watch-complication clockkit


【解决方案1】:

The complication server 从您的并发症控制器请求数据,但它并非旨在向您提供其时间线数据。您可以从服务器中找到最早和最晚的时间旅行日期。

您必须首先从用于创建时间线条目的原始数据中获取时间线详细信息。

至于在最后一个条目结束前 15 分钟安排更新,您可以非常轻松地将其安排为 previous 重新加载请求的一部分。并发症服务器请求的最后一件事(在重新加载或延长时间线之后)是下一个更新日期。

由于复杂服务器刚刚向您询问 getTimelineEntriesForComplication:afterDate: 中的未来时间线条目,您可以记下最后一个时间线条目的日期,将其偏移 15 分钟,然后在 getNextRequestedUpdateDateWithHandler 暂时被调用时返回该新日期.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-04
    • 1970-01-01
    • 1970-01-01
    • 2021-11-29
    相关资源
    最近更新 更多