跳到主要内容

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 序列的早期被 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 的函数。

类型
函数