AppRegistry는 모든 React Native 앱을 실행하기 위한 JS 진입점이다. 앱의 루트 컴포넌트는 AppRegistry.registerComponent를 통해 스스로를 등록해야 한다. 그런 다음 네이티브 시스템이 앱의 번들을 로드하고, 준비가 되면 AppRegistry.runApplication을 호출해 앱을 실제로 실행한다.
import {Text, AppRegistry} from 'react-native';
const App = () => (
<View>
<Text>App1</Text>
</View>
);
AppRegistry.registerComponent('Appname', () => App);
뷰가 파괴될 때 앱을 "중지"하려면, runApplication에 전달된 태그와 함께 AppRegistry.unmountApplicationComponentAtRootTag를 호출한다. 이 두 메서드는 항상 쌍으로 사용해야 한다.
AppRegistry는 다른 모듈이 로드되기 전에 JS 실행 환경이 설정되도록, require 시퀀스의 초기에 불러와야 한다.
참조
메서드
getAppKeys()
static getAppKeys(): string[];
문자열 배열을 반환한다.
getRegistry()
static getRegistry(): {sections: string[]; runnables: Runnable[]};
Registry 객체를 반환한다.
getRunnable()
static getRunnable(appKey: string): Runnable | undefined;
Runnable 객체를 반환한다.
매개변수:
| 이름 | 타입 |
|---|---|
| appKey 필수 | string |
getSectionKeys()
static getSectionKeys(): string[];
문자열 배열을 반환한다.
getSections()
static getSections(): Record<string, Runnable>;
Runnables 객체를 반환한다.
registerCancellableHeadlessTask()
static registerCancellableHeadlessTask(
taskKey: string,
taskProvider: TaskProvider,
taskCancelProvider: TaskCancelProvider,
);
UI 없이 실행되는 코드 조각인 헤드리스 태스크를 등록한다. 이 태스크는 취소가 가능하다.
매개변수:
| 이름 | 타입 | 설명 |
|---|---|---|
| taskKey Required | string | startHeadlessTask 호출 시 사용된 이 태스크 인스턴스의 네이티브 ID. |
| taskProvider Required | TaskProvider | 네이티브 측에서 전달된 데이터를 인자로 받아 Promise를 반환하는 함수. Promise가 이행되거나 거부되면 네이티브 측에 이벤트가 통지되고, JS 컨텍스트를 파괴할 수 있다. |
| taskCancelProvider Required | TaskCancelProvider | 인자를 받지 않고 void를 반환하는 함수. 취소 요청이 들어오면, taskProvider가 실행 중인 함수는 최대한 빨리 작업을 마무리하고 반환해야 한다. |
registerComponent()
static registerComponent(
appKey: string,
getComponentFunc: ComponentProvider,
section?: boolean,
): string;
파라미터:
| 이름 | 타입 |
|---|---|
| appKey 필수 | string |
| componentProvider 필수 | ComponentProvider |
| section | boolean |
registerConfig()
static registerConfig(config: AppConfig[]);
파라미터:
| 이름 | 타입 |
|---|---|
| config 필수 | AppConfig[] |
registerHeadlessTask()
static registerHeadlessTask(
taskKey: string,
taskProvider: TaskProvider,
);
헤드리스 태스크를 등록한다. 헤드리스 태스크는 UI 없이 실행되는 코드 조각이다.
이 기능은 앱이 백그라운드에 있을 때 자바스크립트에서 태스크를 실행하는 방법이다. 예를 들어, 최신 데이터를 동기화하거나 푸시 알림을 처리하거나 음악을 재생하는 데 사용할 수 있다.
매개변수:
| 이름 | 타입 | 설명 |
|---|---|---|
| taskKey 필수 | string | startHeadlessTask가 호출될 때 사용된 이 태스크 인스턴스의 네이티브 ID. |
| taskProvider 필수 | TaskProvider | 네이티브 측에서 전달된 데이터를 유일한 인자로 받는 Promise를 반환하는 함수. Promise가 resolve되거나 reject되면 네이티브 측에 이 이벤트가 알려지고, JS 컨텍스트를 종료할지 결정할 수 있다. |
registerRunnable()
static registerRunnable(appKey: string, func: Runnable): string;
인자:
| 이름 | 타입 |
|---|---|
| appKey 필수 | string |
| run 필수 | function |
registerSection()
static registerSection(
appKey: string,
component: ComponentProvider,
);
매개변수:
| 이름 | 타입 |
|---|---|
| appKey 필수 | string |
| component 필수 | ComponentProvider |
runApplication()
static runApplication(appKey: string, appParameters: any): void;
JavaScript 번들을 로드하고 앱을 실행한다.
매개변수:
| 이름 | 타입 |
|---|---|
| appKey 필수 | string |
| appParameters 필수 | any |
setComponentProviderInstrumentationHook()
static setComponentProviderInstrumentationHook(
hook: ComponentProviderInstrumentationHook,
);
인자:
| 이름 | 타입 |
|---|---|
| hook 필수 | function |
유효한 hook 함수는 다음과 같은 인자를 받아야 한다:
| 이름 | 타입 |
|---|---|
| component 필수 | ComponentProvider |
| scopedPerformanceLogger 필수 | IPerformanceLogger |
이 함수는 반드시 React 컴포넌트를 반환해야 한다.
setWrapperComponentProvider()
static setWrapperComponentProvider(
provider: WrapperComponentProvider,
);
인자:
| 이름 | 타입 |
|---|---|
| provider 필수 | ComponentProvider |
startHeadlessTask()
static startHeadlessTask(
taskId: number,
taskKey: string,
data: any,
);
네이티브 코드에서만 호출된다. 헤드리스 태스크를 시작한다.
매개변수:
| 이름 | 타입 | 설명 |
|---|---|---|
| taskId Required | number | 태스크 실행을 추적하기 위한 네이티브 ID. |
| taskKey Required | string | 시작할 태스크의 키. |
| data Required | any | 태스크에 전달할 데이터. |
unmountApplicationComponentAtRootTag()
static unmountApplicationComponentAtRootTag(rootTag: number);
뷰가 파괴되어야 할 때 애플리케이션을 중지한다.
인자:
| 이름 | 타입 |
|---|---|
| rootTag 필수 | number |
타입 정의
AppConfig
registerConfig 메서드를 위한 애플리케이션 설정.
| 타입 |
|---|
| object |
속성:
| 이름 | 타입 |
|---|---|
| appKey 필수 | string |
| component | ComponentProvider |
| run | function |
| section | boolean |
참고: 모든 설정은
component또는run함수 중 하나를 반드시 설정해야 한다.
레지스트리
| 타입 |
|---|
| 객체 |
속성:
| 이름 | 타입 |
|---|---|
| runnables | Runnables 배열 |
| sections | 문자열 배열 |
실행 가능 객체
| 타입 |
|---|
| 객체 |
속성:
| 이름 | 타입 |
|---|---|
| component | 컴포넌트 프로바이더 |
| run | 함수 |
실행 가능 객체
appKey를 키로 가지고 Runnable 타입을 값으로 가지는 객체를 의미한다.
| 타입 |
|---|
| 객체 |
Task
Task는 어떤 데이터든 인자로 받아서 undefined로 이행되는 Promise를 반환하는 함수다.
| 타입 |
|---|
| function |
TaskCanceller
TaskCanceller는 인자를 받지 않고 반환 값도 없는 함수 타입이다.
| 타입 |
|---|
| function |
TaskCancelProvider
유효한 TaskCancelProvider는 TaskCanceller를 반환하는 함수다.
| 타입 |
|---|
| function |
TaskProvider
유효한 TaskProvider는 Task를 반환하는 함수이다.
| 타입 |
|---|
| function |