跳到主要内容

AppRegistry

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

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

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

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

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

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


参考

方法

getAppKeys()

tsx
static getAppKeys(): string[];

返回一个字符串数组。


getRegistry()

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

返回一个 Registry 对象。


getRunnable()

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

返回一个 Runnable 对象。

参数

姓名类型
appKey
必需
字符串

getSectionKeys()

tsx
static getSectionKeys(): string[];

返回一个字符串数组。


getSections()

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

返回一个 Runnables 对象。


registerCancellableHeadlessTask()

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

注册一个可取消的无头任务。无头任务是指在没有 UI 的情况下运行的代码。

参数

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

registerComponent()

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

参数

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

registerConfig()

tsx
static registerConfig(config: AppConfig[]);

参数

姓名类型
config
必需
AppConfig[]

registerHeadlessTask()

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

注册一个无头任务。无头任务是指在没有 UI 的情况下运行的代码。

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

参数

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

registerRunnable()

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

参数

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

registerSection()

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

参数

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

runApplication()

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

加载 JavaScript 包并运行应用。

参数

姓名类型
appKey
必需
字符串
appParameters
必需
任何

setComponentProviderInstrumentationHook()

tsx
static setComponentProviderInstrumentationHook(
hook: ComponentProviderInstrumentationHook,
);

参数

姓名类型
hook
必需
函数

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

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

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


setWrapperComponentProvider()

tsx
static setWrapperComponentProvider(
provider: WrapperComponentProvider,
);

参数

姓名类型
provider
必需
ComponentProvider

startHeadlessTask()

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

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

参数

姓名类型描述
taskId
必需
数字此任务实例的本地 ID,用于跟踪其执行。
taskKey
必需
字符串要启动的任务的键。
数据
必需
任何要传递给任务的数据。

unmountApplicationComponentAtRootTag()

tsx
static unmountApplicationComponentAtRootTag(rootTag: number);

当视图需要销毁时停止应用。

参数

姓名类型
rootTag
必需
数字

类型定义

AppConfig

registerConfig 方法的应用配置。

类型
对象

属性

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

每个配置都期望设置 componentrun 函数。

Registry

类型
对象

属性

姓名类型
runnablesRunnables 数组
sections字符串数组

Runnable

类型
对象

属性

姓名类型
componentComponentProvider
run函数

Runnables

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

类型
对象

Task

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

类型
函数

TaskCanceller

TaskCanceller 是一个不接受任何参数并返回 void 的函数。

类型
函数

TaskCancelProvider

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

类型
函数

TaskProvider

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

类型
函数