카카오 로그인 시 다시 앱으로 돌아올 때 앱 화면이 유지되지 않고 앱이 새로 실행되는 듯한 현상이 있습니다

비슷한 현상의 대부분 원인은 앱으로 돌아올 때, 이를 감지하여 동작하는 다른 로직에 의해 발생됩니다.
앱으로 돌아올 때, onResume를 구현한 다른 로직에 의해 발생합니다 (안드로이드)

회원님 서비스에서 앱으로 돌아온 후, 이상동작이 의심되시는 경우 이러한 로직이나 이를 사용하는 다른라이브러리가 있지 않은지 확인 부탁드립니다. (pubspec.yaml 제공해 주시면 영향범위에 대해 추가 확인해 보도록 하겠습니다.)

추가로, 제공하고 있는 샘플 프로젝트를 참고해 보시면 좋을것 같습니다.

https://github.com/kakao/kakao_flutter_sdk - example 참고

@chlrbal789 @kaya4043
안녕하세요. 이슈 제보주셨던 시점에서 이미 많은 시간이 지났지만 혹시라도 확인하시면 도움이 될 수 있을까 싶은 생각에 답변 남깁니다.

제보주신 이슈는 go_router를 사용하면 발생할 수 있는 이슈인 것으로 확인됩니다.
iOS 환경에서 카카오 로그인 시 Custom URL Scheme을 사용하고 있습니다. 그런데 go_router에서 Custom URL Scheme이 동작하는 경우에도 redirect 로 감지해서 라우팅처리하고 있어서 kakao_flutter_sdk 의 수정으로는 해결할 수 없는 이슈인 것으로 파악됩니다.

info.plist 파일에 FlutterDeepLinkingEnabled 값을 NO로 처리하면 이슈가 발생하지 않도록 할 수 있으나, 해당 설정을 하면 go_router에서 모든 Custom URL Scheme 호출에 대해서 redirect 처리하지 않도록 하기 때문에 개발 중인 앱에서 Custom URL Scheme을 사용하고 있다면 적용하기 어렵다고 판단해서 아래와 같이 코드 수정을 통해 처리하도록 가이드 전달드리게 되었습니다.

GoRouter 객체 생성 시 redirect 부분을 아래와 같이 수정했을 때 정상적으로 동작하는지 확인 부탁드리고, 문제가 없다면 코드 수정해서 사용 부탁드리겠습니다.

final GoRouter router = GoRouter(
  routes: <RouteBase>[
    // 생략
  ],
  redirect: (BuildContext context, GoRouterState state) {
    // 생략
    
    final uri = state.uri;

    // kakao${app_key}://kakaolink과 같은  Custom URL Scheme도 있으므로 uri.authority까지 체크 필요
    if (uri.scheme.contains('kakao') && uri.authority == 'oauth') {
      return '${카카오톡 로그인을 실행한 페이지}';
    }

    // 생략
  },
);
3개의 좋아요