적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

초보 iOS 개발자의 일상/이슈모음집

앱이 꺼진 상태에서 푸시 클릭 시 화면 랜딩 되지 않는 이슈

hongssup_ 2024. 9. 27. 17:20
반응형

foreground background 에서는 푸시 클릭 시 화면 랜딩이 잘 되는데, 앱이 꺼져있는 상태에서 클릭 시 화면 이동이 되지 않았다. 

앱 처음 진입시 로그인 하는 시간이 필요한데, 그 전에 딥링크 이동 로직을 타버리면 유저정보가 아직 세팅되기 전이라 다음 구문이 실행되지 않게 되더라. 

if AppDelegate.shared.user != nil {
    DispatchQueue.main.asyncAfter(deadline: .now() + 0.2) {
        Common.handleRendingLink(parameters: data)
    }
}

 

푸시 클릭 했을 때, 유저 정보가 세팅되기 전이면 푸시 화면 이동 로직을 pending 시켜주는 코드가 추가되어야 한다. 

final class PushNotificationHandler {
    static let shared = PushNotificationHandler()
    var isPending: Bool = false
    private var userInfo: [AnyHashable: Any]?
    
    private init() {}
    
    func handle(with userInfo: [AnyHashable: Any]) {
        guard let notification = PushNotificationBuilder.build(with: userInfo) else { return }
        let result = notification.handle()
        if !result {
            self.isPending = true
            self.userInfo = userInfo
        }
    }
    
    func handlePendingPushNotification() {
        guard let userInfo else { return }
        
        self.handle(with: userInfo)
        self.userInfo = nil
    }
}

 

 

왜 내 맥북 콘솔에서 로그가 찍히지 않는것이야!! ㅠ

728x90
반응형