React Native

1단계: react-navigation 라이브러리 설치
스크린 이동을 위해 react-navigation 패키지를 설치합니다.
해당 가이드는 Native Stack Navigator를 사용합니다.
위 라이브러리와 의존성(dependencies)을 가지는 추가 라이브러리 설치가 필요합니다.
iOS의 경우 [Cocoapods] 를 통해 Pod 설치가 필요합니다.
2단계: 런처 스크린 화면 구성
자사 서비스 내 인앱 게임을 구동하기 위해서는 WebView 를 포함하는 스크린의 생성이 필요합니다.
다음 가이드를 따라 진행 해주시기 바랍니다.
1. 런처 스크린 파일 생성
src/screens 경로에 런처용 스크린 화면을 추가합니다.
예시로 src/screens/launcher/Launcher.tsx 로 작성하였습니다.
2. Navigation 라우팅 추가
App.tsx 파일에서 Navigator 관련 정의를 추가합니다.
Stack Navigator에 하위로 사용할 스크린에 해당하는 Stack을 생성합니다.
Stack.Screen 의 name 값이 라우팅 경로가 되고, component 는 스크린 컴포넌트를 넣어주세요.
예시 가이드에서는 launcher , banner 2가지 스크린을 사용하였습니다.
3. WebView에 런처 호출 URL 로드
WebView 를 사용하기 위해서 react-native-webview NPM 라이브러리를 설치 합니다.
런처 스크린 내에 WebView 컴포넌트를 추가하고 source 속성에 런처 호출 URL을 요청합니다.
자바스크립트 활성화를 위해
javaScriptEnabled값을true로 설정합니다.iOS는 메모리 문제로
Terminate발생 가능성이 있어reload처리를 추가적으로 권장합니다.WebView관련ref선언을 추가합니다.WebView컴포넌트 내onContentProcessDidTerminate콜백을 통해reload처리합니다.
3단계: onMessage 설정 추가
런처와 React Native간의 통신을 수행하기 위해 WebView 의 onMessage 콜백을 정의합니다.
WebView 에 로드된 런처에서 React Native로 메세지 이벤트를 전달합니다.
다음은 런처에서 전달하는 이벤트 케이스 입니다.
closeLauncher
런처의 Back 버튼 UI 클릭 시 (뒤로가기 처리)
launcherLoaded
런처 로드가 완료된 시점에 호출
timerMissionComplete
타이머 미션이 완료 되었을 때 호출
giftReceived
육성완료 시 호출
4단계: 런처 스크린 세로모드 고정
게임은 세로모드 해상도에 최적화 되어 스크린의 세로모드 고정이 필요합니다.
세로모드 고정을 위해 react-native-orientation-locker 라이브러리를 설치합니다.
세로모드 고정 코드를 추가합니다.
iOS 환경에서는 추가 설정이 필요합니다.
/ios/AppDelegate.m파일을 열고 아래 코드를 추가합니다.pod install실행합니다.
5단계: 화면 전환 설정
1. 딥링킹을 위한 설정 추가
React Native 환경 내 Android / iOS 두 플랫폼에서 딥링킹 처리를 위한 가이드입니다.
Android
Android프로젝트 루트 경로 내
android/app/src/main/AndroidManifest.xml파일 내 딥링킹 처리를 위한intent-filter를 추가합니다.scheme값은 프로모션 설정 시 입력할 딥링크에 사용하실 스키마 값으로 세팅해주세요.
iOS
iOSscheme 관련 정보는 직접 코드 추가 또는 Xcode 내 설정하는 2가지 방법이 있습니다.
직접 코드 추가
info.plist파일에 직접 코드를 추가합니다.CFBundleURLTypes관련 내용을 아래와 같이 추가합니다.
Xcode 내 설정
URL Types에
scheme추가합니다.

프로젝트 /ios 경로 내에 몇가지 설정을 더 추가합니다.
2. NavigationContainer linking 추가
React Native에서는 NavigationContainer 의 linking 기능을 사용하여 딥링크를 컨트롤합니다.
Last updated