【问题标题】:SwiftUI application lifecycleSwiftUI 应用程序生命周期
【发布时间】:2020-09-23 16:08:09
【问题描述】:

在我的第一个 SwiftUI 应用程序中,我启用了远程通知和后台进程。 我确实添加了一个 AppDelegate 类来支持通知。

通知将应用程序徽章设置为适当的值。

由于此应用启用了这些后台模式,因此一些生命周期事件无法正常工作:

  • applicationDidBecomeActive
  • applicationWillResignActive
  • applicationDidEnterBackground
  • applicationWillEnterForeground

问题:我在哪里/如何重置徽章?

【问题讨论】:

标签: ios swiftui badge


【解决方案1】:

以下是观察didBecomeActiveNotification的方法:

@main
struct TestApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
                .onReceive(NotificationCenter.default.publisher(for: UIApplication.didBecomeActiveNotification)) { _ in
                    UIApplication.shared.applicationIconBadgeNumber = 0
                }
        }
    }
}

您可以用同样的方式观察其他通知。


您也可以使用@EnvironmentObject 来跟踪应用程序状态:

【讨论】:

    猜你喜欢
    • 2022-08-16
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 2011-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多