WebView를 사용하는 경우
다음의 경우에만 WebView 연동을 사용하세요.- Xamarin, Cordova 등 네이티브 SDK가 없는 플랫폼이나 특수한 프레임워크에서 개발하는 경우
- 네이티브 SDK를 연동하기 전에 빠른 프로토타입이나 개념 증명이 필요한 경우
- 웹에서 마이그레이션 중이며 네이티브 연동으로 넘어가기 전까지 임시 브리지가 필요한 경우
작동 방식
1
세션 생성
백엔드에서 Create Session API를 호출하면 호스팅된
url을 받습니다.2
WebView에서 열기
앱이 WebView 컴포넌트에
url을 로드합니다.3
사용자가 인증 완료
사용자가 WebView 안에서 인증 흐름을 진행합니다.
4
콜백 가로채기
완료되면 WebView가 콜백 URL로 이동합니다. 앱은 이 이동을 가로채고 결과를 추출합니다.
5
webhook으로 전체 결과 받기
백엔드가 webhook으로 전체 결정 데이터를 받습니다.
세션 생성
인증 흐름을 열기 전에 백엔드에서 세션을 생성하세요.201, url에는 session_id가 아니라 12자리 session_token이 포함됩니다):
url 필드를 로드하세요. session_token으로 직접 URL을 만들지 마세요.
React Native
WebView 패키지를 설치하세요.구현
React Native 데모
Expo와 WebView를 활용한 인증 예제
Flutter
pubspec.yaml에 필요한 패키지를 추가하세요.
구현
Flutter 데모
Flutter WebView 인증 예제
필수 설정
사용자 에이전트(필수)
WebView가 올바르게 동작하려면 반드시 일반 모바일 사용자 에이전트를 설정해야 합니다.미디어 설정(필수)
콜백 처리
인증이 끝나면 WebView가 쿼리 파라미터와 함께 콜백 URL로 리디렉션합니다.문제 해결
카메라가 작동하지 않음
카메라가 작동하지 않음
mediaPlaybackRequiresUserGesture가false인지 확인하세요- OS 수준에서 카메라 권한이 허용되었는지 확인하세요
- 사용자 에이전트 문자열이 올바르게 설정되었는지 확인하세요
흰 화면이 나오거나 로딩에 문제가 있음
흰 화면이 나오거나 로딩에 문제가 있음
- 세션 URL이 유효하며 만료되지 않았는지 확인하세요
- 인터넷 연결을 확인하세요
- WebView 설정에서 JavaScript가 활성화되어 있는지 확인하세요
콜백이 실행되지 않음
콜백이 실행되지 않음
- 세션 생성 시 설정한 콜백 URL과 일치하는지 확인하세요
- navigation delegate 또는 listener가 올바르게 구성되었는지 확인하세요
- 세션을 생성할 때
callback_method를"both"로 설정해 보세요