programing

신속 - 푸시 알림 배지 번호를 제거하시겠습니까?

css3 2023. 8. 28. 21:17

신속 - 푸시 알림 배지 번호를 제거하시겠습니까?

아이콘 배지를 빨리 제거하려고 하는데 PFI 설치가 더 이상 안 되는 것 같습니다.이거 어떻게 하는 거지?

앱 배지 아이콘을 0으로 설정하여 "제거"할 수 있습니다.

스위프트 < 3.0

UIApplication.sharedApplication().applicationIconBadgeNumber = 0

스위프트 3.0+

UIApplication.shared.applicationIconBadgeNumber = 0

이 질문은 당신이 언제 그것을 사용할 수 있는지를 보여줍니다: iOS에서 푸시 알림 배지 수를 지우는 방법?

스위프트 4.2

AppDelegate에서 다음 코드를 입력합니다.

    func applicationDidBecomeActive(_ application: UIApplication) {
        application.applicationIconBadgeNumber = 0
    }

스위프트 5

앱 딜러가 옵션을 사용하여 시작 완료

UIApplication.shared.applicationIconBadgeNumber = 0

스위프트 5

AppDelegate doedLaunchingFinishWithOptions에 넣을 수 있지만 앱이 비활성화되어 있고 활성화된 경우 배지가 지워지지 않습니다.

이전 상태와 상관없이 배지를 지우려면 AppDelegate 대신 SceneDelegate에 배지를 넣어야 합니다.

func sceneDidBecomeActive(_ scene: UIScene) {
    UIApplication.shared.applicationIconBadgeNumber = 0
}

더 스위프트UI 지향 접근 방식은 변경 사항을 수신하는 것일 수 있습니다.@Environment(\.scenePhase) var scenePhase근본적인 관점에서그렇다면, 새로운 단계가.active,세트UIApplication.shared.applicationIconBadgeNumber로.0다른 답변들이 논의한 바와 같이.

코드 예제:

@main
struct MRPApp: App {
    @Environment(\.scenePhase) var scenePhase
    @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
    var body: some Scene {
        WindowGroup {
            ContentView()
                .onChange(of: scenePhase) { newPhase in
                    if newPhase == .active {
                        UIApplication.shared.applicationIconBadgeNumber = 0
                    }
                }
        }
    }
}

언급URL : https://stackoverflow.com/questions/27769074/swift-remove-push-notification-badge-number