在没有推送通知的情况下更改实时活动

Tol*_*lar 5 ios swift swiftui

我正在尝试在我的应用程序中实现“实时活动”。我正在关注苹果文档。

链接: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)
    }
}
Run Code Online (Sandbox Code Playgroud)

实际上,代码非常简单。我们可以使用timerInterval来制作倒计时动画。但是当计时器结束时,我想更新实时活动视图。如果用户重新打开应用程序,我可以更新它,但是如果用户不打开应用程序会发生什么?有没有办法在不使用推送通知的情况下更新实时活动?

wiz*_*hen -4

不。实时活动只能通过 ActivityKit 或远程推送通知来更新/结束。因此,如果用户没有打开应用程序,只需通过远程推送通知更新实时活动。