Flutter Android에서 딥링크로 callback 받기
97
작성한 질문수 1
Oauth2 인증 java서버에서 인증이 성공한 후 Flutter Android에서 설정한 딥링크로 go_router로 callback을 받는 기능을 만들고 싶어서 노력중입니다. 근데 인터넷검색을 통해 딥링크 설정도 해보고 그랬지만 플러터에서 콜백을 받지를 못하는 것같은데 어떤 설정이 필요한지 잘 모르겠습니다.
현재 AndroidManifest.xml에
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="testapp"/>
</intent-filter>설정도 되어있고
List<GoRoute> get routes => [
// GoRoute(
// path: '/',
// name: RootTab.routeName,
// builder: (context, state) => RootTab(),
// ),
GoRoute(
path: '/profile',
name: ProfileScreen.routeName,
builder: (context, state) => ProfileScreen(),
),
GoRoute(
path: '/login',
name: LoginScreen.routeName,
builder: (context, state) => LoginScreen(),
),
GoRoute(
path: '/callback',
name: CallbackScreen.routeName,
redirect: (context, state) async {
final code = state.queryParameters["code"];
if(code != null){
return "/";
} else {
//code없으면 실패한걸로 간주하고 다시 login페이지로 redirect
return "/login";
}
},
),
];
어떤 설정을 더 해야 콜백을 받을 수 있을 까요? callback을 받으면 나는 에러는
DioException [unknown]: null Error: Invalid argument(s): Unsupported scheme 'testapp' in URI testapp://callback?
이렇게 납니다
조언해주시면 감사합니다.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
정동인님, Flutter에서 딥링크를 통해 콜백을 받으려면 몇 가지 사항을 확인하는 것이 좋습니다.
- Schemes 및 Host 설정: AndroidManifest.xml에서 설정한
<data android:scheme="testapp"/>부분 외에도,<data android:host="callback"/>을 추가해보세요. 이렇게 하면 특정 경로로의 딥링크도 처리할 수 있습니다.
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="testapp" android:host="callback"/>
</intent-filter>
GoRouter 설정: 설정한
redirect함수 내에서 URI의 올바른 형식을 처리하는 부분이 필요합니다. 현재 에러 메시지에 따르면 ‘testapp’이라는 스키마를 처리하지 못하고 있는 것으로 보입니다. 올바른 스키마를 처리하거나 검증할 수 있도록redirect함수를 수정해보세요.Flutter Local Authentication: 실제 페이지 전환이나 인증 흐름이 잘 작동하는지 확인하기 위해 Flutter의 Local Authentication 플러그인을 사용하여 추가적으로 콜백 기능을 확인하고 디버깅해 보시는 것도 방법입니다.
이러한 방법들을 통해 딥링크 콜백 문제를 해결할 수 있을 것으로 생각됩니다. 추가로 문의사항이 있거나 문제가 지속되면 공유해 주세요. 도움이 되길 바랍니다.
198강 BottomSheet 디자인 강좌 이해 돕기
0
2
1
인가 코드 발급(프론트 vs 백)
0
21
2
Node 관련 질문입니다
0
22
3
구글 소셜 로그인 후 로그인 시 구글에러
0
25
2
실습중(개인 비용 관리 앱) 문의드려요
0
42
2
6강에 비디오가 이상해요
0
21
1
Isar 마지막 업데이트는 2년전입니다.
0
29
0
Chat GPT API 설정하기 프롬프트
0
45
2
FlutterSecureStorage 질문
0
28
0
구글 플레이 등록 시, Privact Policy URL 등록 팁
0
40
1
질문있습니다!
0
17
0
2-8강 Websocket server running on port가 안 뜹니다.
0
41
2
video_call 플러그인 설치후 에러 발생
0
43
1
회차마다 있는 실습
1
38
2
계정 관련 문의
0
47
2
구글 플레이스토어 배포시 테스트 요건
1
68
2
수강 기한 연장 요청드려도될까요..
1
48
2
화면이 안 나옵니다. 소리만 나와요
0
55
2
추가 강의 문의
0
48
1
vs code IDE
0
77
2
구글 개발자 계정 생성 관련 질문
0
64
1
클로드코드가아닌, vs code codex
0
185
1
애드몹 계정 정지 관련 문의
0
80
2
파이어베이스 설치 오류
0
67
1





