투케이2K

9. (TWOK/LOGIC) [Ios] 푸시 (push) 알림 포그라운드 , 백그라운드 , 앱 kill 상태 클릭 이벤트 로직 본문

투케이2K 로직정리

9. (TWOK/LOGIC) [Ios] 푸시 (push) 알림 포그라운드 , 백그라운드 , 앱 kill 상태 클릭 이벤트 로직

투케이2K 2022. 8. 30. 13:47

[로직 정리]

정리 로직 : MOBILE (Ios)

상태 : [Ios] 푸시 (push) 알림 포그라운드 , 백그라운드 , 앱 kill 상태 클릭 이벤트 로직

 

[설 명]

[IOS]

1. SceneDelegate 클래스 sceneDidBecomeActive (Scene 활성화 및 사용자 이벤트에 응답 실시) 부분에서 Application_Run 프리퍼런스 값 저장 실시 (TRUE)


2. AppDelegate 클래스 applicationWillTerminate , didDiscardSceneSessions 부분에서 Application_Run 프리퍼런스 값 초기화 실시


3. A_Main 클래스 viewDidLoad , 포그라운드 부분에서 A_Main_Run 실행 프리퍼런스 값 저장 실시 (TRUE)


4. A_Main 클래스 viewDidDisappear , 백그라운드 부분에서 A_Main_Run 실행 프리퍼런스 값 초기화 실시


5. AppDelegate 클래스에서 userNotificationCenter willPresent 포그라운드 푸시 알림을 전달 받은 경우 A_Main_Run 프리퍼런스 값 널 체크 >> 브로드 캐스팅 알림 전달 실시


6. AppDelegate 클래스에서 userNotificationCenter didReceive 백그라운드 푸시 알림 클릭 이벤트 확인 부분에서 Application_Run 프리퍼런스 값 널 체크 실시 

  - Application_Run 프리퍼런스 값이 널이 아닌 경우 (백그라운드에서 포그라운드 접속) : PUSH_BACK_TO_FORE_DATA 프리퍼런스에 백그라운드 푸시 메시지 저장
  - Application_Run 프리퍼런스 값이 널 인 경우 (앱 Kill 상태에서 포그라운드 접속) : PRE_APP_KILL_PUSH_MSG 프리퍼런스에 앱 Kill 상태 푸시 메시지 저장


7. AppDelegate 클래스에서 didReceiveRemoteNotification background 리모트 푸시 알림 수신 이벤트 확인 부분에서 Application_Run 프리퍼런스 값 널 체크 실시 

  - Application_Run 프리퍼런스 값이 널이 아닌 경우 (백그라운드에서 포그라운드 접속) : PUSH_BACK_TO_FORE_DATA 프리퍼런스에 백그라운드 푸시 메시지 저장
  - Application_Run 프리퍼런스 값이 널 인 경우 (앱 Kill 상태에서 포그라운드 접속) : PRE_APP_KILL_PUSH_MSG 프리퍼런스에 앱 Kill 상태 푸시 메시지 저장


8. SceneDelegate 클래스 >> sceneWillEnterForeground 포그라운드 접속 체크 부분에서 웹뷰 404 에러가 아닌 경우 >> 백그라운드 푸시 메시지 널 체크, 앱 Kill 상태 푸시 메시지 널 체크 실시

  - 백그라운드 푸시 메시지가 널이 아닌 경우 : A_Main 클래스로 브로드 캐스팅 알림 전달 실시
  - 백그라운드 푸시 메시지가 널 인 경우 : 앱 Kill 상태 푸시 메시지 널 체크 >> 앱 Kill 상태 푸시 메시지가 널이 아닌 경우 >> A_Intro 클래스 인텐트 이동 실시 및 앱 Kill 상태 메시지 전달 >> A_Intro 에서는 A_Main 클래스로 다시 데이터 전달
    (이 부분에서 데이터를 전송하고 난 후 프리퍼런스 데이터 초기화 실시)


9. A_Main 클래스에서 특정 주소 웹뷰 로드 완료 시 푸시 메시지 널 체크 >> 자바스크립트 브릿지로 전송 실시 (전송 후 무한 루프 방지 위해 데이터 초기화)

 

반응형
Comments