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 必需 | 字符串 |
component | ComponentProvider |
run | 函数 |
section | 布尔值 |
注意:每个配置都希望设置
component
或run
函数。
Registry
类型 |
---|
对象 |
属性
名称 | 类型 |
---|---|
runnables | Runnable 数组 |
sections | 字符串数组 |
Runnable
类型 |
---|
对象 |
属性
名称 | 类型 |
---|---|
component | ComponentProvider |
run | 函数 |
Runnables
一个键为 appKey
,值为 Runnable
类型的对象。
类型 |
---|
对象 |
Task
Task
是一个接受任何数据作为参数并返回一个解析为 undefined
的 Promise 的函数。
类型 |
---|
函数 |
TaskCanceller
TaskCanceller
是一个不带参数并返回 void 的函数。
类型 |
---|
函数 |
TaskCancelProvider
一个有效的 TaskCancelProvider
是一个返回 TaskCanceller
的函数。
类型 |
---|
函数 |
TaskProvider
一个有效的 TaskProvider
是一个返回 Task
的函数。
类型 |
---|
函数 |