跳到主要内容

AppRegistry

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

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

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

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

当某个视图应该被销毁时,要“停止”一个应用,请使用传入 runApplication 的标签调用 AppRegistry.unmountApplicationComponentAtRootTag。这两个方法应始终成对使用。

应尽早在 require 序列中引入 AppRegistry,以确保在要求加载其他模块之前,JS 执行环境已经完成设置。


参考

方法

getAppKeys()

React TSX
static getAppKeys(): string[];

返回一个字符串数组。


getRegistry()

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

返回一个 Registry 对象。


getRunnable()

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

返回一个 Runnable 对象。

参数:

名称类型
appKey
必需
string

getSectionKeys()

React TSX
static getSectionKeys(): string[];

返回一个字符串数组。


getSections()

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

返回一个 Runnables 对象。


registerCancellableHeadlessTask()

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

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

参数:

名称类型描述
taskKey
必需
string该任务实例的原生 id,在调用 startHeadlessTask 时使用。
taskProvider
必需
TaskProvider一个返回 promise 的函数,它接受从原生端传入的一些数据作为唯一参数。当 promise 被解析或拒绝时,原生端会收到该事件通知,并且它可能决定销毁 JS 上下文。
taskCancelProvider
必需
TaskCancelProvider一个返回 void 的函数,不接受任何参数;当请求取消时,taskProvider 正在执行的函数应尽快结束并返回。

registerComponent()

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

参数:

名称类型
appKey
必需
string
componentProvider
必需
ComponentProvider
sectionboolean

registerConfig()

React TSX
static registerConfig(config: AppConfig[]);

参数:

名称类型
config
必需
AppConfig[]

registerHeadlessTask()

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

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

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

参数:

名称类型描述
taskKey
必需
string该任务实例的原生 id,在调用 startHeadlessTask 时使用。
taskProvider
必需
TaskProvider一个返回 promise 的函数,它接受从原生端传入的一些数据作为唯一参数。当 promise 被解析或拒绝时,原生端会收到该事件通知,并且它可能决定销毁 JS 上下文。

registerRunnable()

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

参数:

名称类型
appKey
必需
string
run
必需
function

registerSection()

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

参数:

名称类型
appKey
必需
string
component
必需
ComponentProvider

runApplication()

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

加载 JavaScript bundle 并运行应用。

参数:

名称类型
appKey
必需
string
appParameters
必需
any

setComponentProviderInstrumentationHook()

React TSX
static setComponentProviderInstrumentationHook(
hook: ComponentProviderInstrumentationHook,
);

参数:

名称类型
hook
必需
function

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

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

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


setWrapperComponentProvider()

React TSX
static setWrapperComponentProvider(
provider: WrapperComponentProvider,
);

参数:

名称类型
provider
必需
ComponentProvider

startHeadlessTask()

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

仅由原生代码调用。启动一个无界面任务。

参数:

名称类型描述
taskId
必需
number该任务实例的原生 id,用于跟踪其执行。
taskKey
必需
string要启动的任务键。
data
必需
any要传递给任务的数据。

unmountApplicationComponentAtRootTag()

React TSX
static unmountApplicationComponentAtRootTag(rootTag: number);

当某个视图应该被销毁时,停止一个应用。

参数:

名称类型
rootTag
必需
number

类型定义

AppConfig

registerConfig 方法的应用配置。

Type
object

属性:

NameType
appKey
必填
string
componentComponentProvider
runfunction
sectionboolean
备注

每个配置都应设置 componentrun 函数。

Registry

Type
object

属性:

NameType
runnablesarray of Runnables
sectionsarray of strings

Runnable

| Type | | ------ | ----------------- | | object |

属性:

NameType
componentComponentProvider
runfunction

Runnables

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

Type
object

Task

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

Type
function

TaskCanceller

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

Type
function

TaskCancelProvider

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

Type
function

TaskProvider

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

Type
function