跳至主要内容

AppRegistry

AppRegistry 是运行所有 React Native 应用程序的 JS 入口点。应用程序根组件应使用 AppRegistry.registerComponent 自行注册,然后原生系统可以加载应用程序的 bundle,并在准备好时通过调用 AppRegistry.runApplication 实际运行应用程序。

import {Text, AppRegistry} from 'react-native';

const App = () => (
<View>
<Text>App1</Text>
</View>
);

AppRegistry.registerComponent('Appname', () => App);

当视图应被销毁时,要“停止”应用程序,请使用传递给 runApplication 的标签调用 AppRegistry.unmountApplicationComponentAtRootTag。这些应始终成对使用。

AppRegistry 应在 require 序列的早期被加载,以确保在加载其他模块之前设置好 JS 执行环境。


参考

方法

getAppKeys()

static getAppKeys(): string[];

返回一个字符串数组。


getRegistry()

static getRegistry(): {sections: string[]; runnables: Runnable[]};

返回一个 Registry 对象。


getRunnable()

static getRunnable(appKey: string): : Runnable | undefined;

返回一个 Runnable 对象。

参数

名称类型
appKey
必需
字符串

getSectionKeys()

static getSectionKeys(): string[];

返回一个字符串数组。


getSections()

static getSections(): Record<string, Runnable>;

返回一个 Runnables 对象。


registerCancellableHeadlessTask()

static registerCancellableHeadlessTask(
taskKey: string,
taskProvider: TaskProvider,
taskCancelProvider: TaskCancelProvider,
);

注册一个可以取消的 headless 任务。headless 任务是一段无需 UI 即可运行的代码。

参数

名称类型描述
taskKey
必需
字符串调用 startHeadlessTask 时使用的此任务实例的原生 ID。
taskProvider
必需
TaskProvider一个返回 Promise 的函数,它将从原生端传递的一些数据作为唯一参数。当 Promise 被 resolve 或 reject 时,原生端会收到此事件的通知,并且它可能会决定销毁 JS 上下文。
taskCancelProvider
必需
TaskCancelProvider一个不带参数的 void 返回函数;当请求取消时,taskProvider 执行的函数应尽快结束并返回。

registerComponent()

static registerComponent(
appKey: string,
getComponentFunc: ComponentProvider,
section?: boolean,
): string;

参数

名称类型
appKey
必需
字符串
componentProvider
必需
ComponentProvider
section布尔值

registerConfig()

static registerConfig(config: AppConfig[]);

参数

名称类型
config
必需
AppConfig[]

registerHeadlessTask()

static registerHeadlessTask(
taskKey: string,
taskProvider: TaskProvider,
);

注册一个 headless 任务。headless 任务是一段无需 UI 即可运行的代码。

这是一种在应用程序处于后台时在 JavaScript 中运行任务的方式。例如,它可以用于同步新数据、处理推送通知或播放音乐。

参数

名称类型描述
taskKey
必需
字符串调用 startHeadlessTask 时使用的此任务实例的原生 ID。
taskProvider
必需
TaskProvider一个返回 Promise 的函数,它将从原生端传递的一些数据作为唯一参数。当 Promise 被 resolve 或 reject 时,原生端会收到此事件的通知,并且它可能会决定销毁 JS 上下文。

registerRunnable()

static registerRunnable(appKey: string, func: Runnable): string;

参数

名称类型
appKey
必需
字符串
run
必需
函数

registerSection()

static registerSection(
appKey: string,
component: ComponentProvider,
);

参数

名称类型
appKey
必需
字符串
component
必需
ComponentProvider

runApplication()

static runApplication(appKey: string, appParameters: any): void;

加载 JavaScript bundle 并运行应用程序。

参数

名称类型
appKey
必需
字符串
appParameters
必需
任意

setComponentProviderInstrumentationHook()

static setComponentProviderInstrumentationHook(
hook: ComponentProviderInstrumentationHook,
);

参数

名称类型
hook
必需
函数

一个有效的 hook 函数接受以下参数

名称类型
component
必需
ComponentProvider
scopedPerformanceLogger
必需
IPerformanceLogger

该函数还必须返回一个 React 组件。


setWrapperComponentProvider()

static setWrapperComponentProvider(
provider: WrapperComponentProvider,
);

参数

名称类型
provider
必需
ComponentProvider

startHeadlessTask()

static startHeadlessTask(
taskId: number,
taskKey: string,
data: any,
);

仅从原生代码调用。启动一个 headless 任务。

参数

名称类型描述
taskId
必需
数字此任务实例的原生 ID,用于跟踪其执行情况。
taskKey
必需
字符串要启动的任务的键。
data
必需
任意传递给任务的数据。

unmountApplicationComponentAtRootTag()

static unmountApplicationComponentAtRootTag(rootTag: number);

当视图应被销毁时,停止应用程序。

参数

名称类型
rootTag
必需
数字

类型定义

AppConfig

registerConfig 方法的应用程序配置。

类型
对象

属性

名称类型
appKey
必需
字符串
componentComponentProvider
run函数
section布尔值

注意:每个配置都希望设置 componentrun 函数。

Registry

类型
对象

属性

名称类型
runnablesRunnable 数组
sections字符串数组

Runnable

类型
对象

属性

名称类型
componentComponentProvider
run函数

Runnables

一个键为 appKey,值为 Runnable 类型的对象。

类型
对象

Task

Task 是一个接受任何数据作为参数并返回一个解析为 undefined 的 Promise 的函数。

类型
函数

TaskCanceller

TaskCanceller 是一个不带参数并返回 void 的函数。

类型
函数

TaskCancelProvider

一个有效的 TaskCancelProvider 是一个返回 TaskCanceller 的函数。

类型
函数

TaskProvider

一个有效的 TaskProvider 是一个返回 Task 的函数。

类型
函数