• 이슈
    • android 앱에서 특정화면 들어간후(스택을 쌓은 후) 기기자체 하단 뒤로가기 버튼 클릭 시 동작하지 않는 이슈
  • 원인:
    • android13부터 google에서 Predictive Back Navigation을 도입함 (뒤로가기 제스처시에 어디로갈지 미리 보여주는 기능)
    • React Native의 react-navigation은 기존 방식인 onBackPressed() 방식으로 뒤로가기 기능을 동작(하지만 android13은 Predictive Back Navigation 을 써서 뒤로가기 기능을 지원) 즉, 기기가 android13이면 자동적으로 신규기능을 사용하도록 세팅되어서 뒤로가기 기능이 동작해야하는데 RN은 기존방식으로 뒤로가기 기능을 사용하려고 하니, 기존동작 방식이 무시됨
  • 해결:
    • AndroidManifest.xml

      android:enableOnBackInvokedCallback="false”
      
      • true: Predictive Back Navigation 동작이 기존 동작을 무시하게되어 onBackPressed() 동작이 진행되지 않음
      • false: 기존동작 방식인 onBackPressed()를 그대로 사용하겠다는 설정
      tools:replace="android:enableOnBackInvokedCallback”
      
      • 다른 라이브러리(Unity, ARCore…)에서 false로 설정한 값을 건드려도 영향받지 못하도록 현재 설정된값을 강제하겠다는 의미
  • 결론:
    • react-native navigation은 onBackPressed()동작을 지원하도록 설정이 되어있지만, android13부터 신규 뒤로가기 동작을 지원하기에 기존동작을 무시함 즉, rn의 navigation이 신규 기능동작이 지원되도록 세팅이 되어야하는데 안되어 있어서 발생하는 문제
    • 추후 rn에서 기능이 지원되면 AndroidManifest에서 설정을 제거해도 될것으로 보임
  • 참조
    • Predictive Back Navigation