gpt4 book ai didi

ios12 - WatchOS 5 - 如何立即刷新您的复杂功能?

转载 作者:行者123 更新时间:2023-12-01 04:37:01 25 4
gpt4 key购买 nike

我有一个苹果 watch 的复杂功能和 iPhone 应用程序并排运行。我在应用程序中有一个按钮,可以将应用程序上下文字典传输到 watch 。我希望看到并发症标题被刷新。

我似乎无法强制执行“点击按钮-> 查看并发症的更新”这种行为。

什么是强制更新并发症的适当方法? 如何立即刷新我的 Apple Watch 复杂功能?

我确实看到了标题的变化,但我认为它需要我先点击复杂功能才能打开它的 Apple Watch 应用程序。如何让复杂功能在 Watch 主屏幕上自行更新?

func getCurrentTimelineEntry(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTimelineEntry?) -> Void) {

if complication.family == .graphicRectangular {
let template = CLKComplicationTemplateGraphicRectangularLargeImage()
//...configure
return template
}
}

我看到这个苹果提供的代码刷新了复杂性。我不确定是不是太多了,或者如果调用 extendTimeline如果我使用上面的条目生成并发症,单独使用就足够了。
func refreshComplication() {
#if os(watchOS)
let server = CLKComplicationServer.sharedInstance()
if let complications = server.activeComplications {
for complication in complications {
// Call this method sparingly. If your existing complication data is still valid,
// consider calling the extendTimeline(for:) method instead.
server.reloadTimeline(for: complication)
}
}
#endif
}

最佳答案

您应该可以通过调用 refreshComplication() 来完成此操作。来自您的 didReceiveApplicationContext 的函数在包含您的 的文件中阻止WCSessionDelegate .

因此,如果您通过 applicationContext 消息接收标题,您的代码将看起来像这样。

func session(_ session: WCSession, didReceiveApplicationContext applicationContext: [String : Any]) {

if let updatedTitle = applicationContext["updatedTitle"] {
if let title = updateTitle as? String {
//Remeber that complicationServer.swift is a seperate process therefore you will need to store the received data somehow.
UserDefaults.standard.set(title, forKey: "complicationTitle")
refreshComplication()
}
}
}

我在我的 iOS 应用程序中有一个设置,可以让用户更改他们的目标,并且使用这种方法几乎可以立即刷新新目标的复杂性。但是,我相信一旦你的并发症用完它的 CPU 预算,什么都不会发生,但希望这不会发生在你身上。见 https://developer.apple.com/documentation/clockkit/clkcomplicationserver/1627891-reloadtimeline

希望对您有所帮助,让我知道您的进展情况。
德鲁

关于ios12 - WatchOS 5 - 如何立即刷新您的复杂功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53364888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com