【发布时间】:2022-11-30 15:24:18
【问题描述】:
我正在尝试对我的应用实施“实时活动”。我正在关注 Apple 文档。
链接:https://developer.apple.com/documentation/activitykit/displaying-live-data-with-live-activities
示例代码:
struct LockScreenLiveActivityView: View {
let context: ActivityViewContext<PizzaDeliveryAttributes>
var body: some View {
VStack {
Spacer()
Text("\(context.state.driverName) is on their way with your pizza!")
Spacer()
HStack {
Spacer()
Label {
Text("\(context.attributes.numberOfPizzas) Pizzas")
} icon: {
Image(systemName: "bag")
.foregroundColor(.indigo)
}
.font(.title2)
Spacer()
Label {
Text(timerInterval: context.state.deliveryTimer, countsDown: true)
.multilineTextAlignment(.center)
.frame(width: 50)
.monospacedDigit()
} icon: {
Image(systemName: "timer")
.foregroundColor(.indigo)
}
.font(.title2)
Spacer()
}
Spacer()
}
.activitySystemActionForegroundColor(.indigo)
.activityBackgroundTint(.cyan)
}
}
实际上,代码非常简单。我们可以使用 timerInterval 来制作倒计时动画。但是当计时器结束时,我想更新实时活动视图。如果用户重新打开应用程序,我可以更新它,但是如果用户不打开应用程序会怎样?有没有办法在不使用推送通知的情况下更新实时活动?
【问题讨论】: