原生模块自动链接
需要进行架构审查:本文档旨在支持针对 React Native 的“旧”或“遗留”架构的开发。它可能适用也可能不适用于新架构的开发,需要审查并可能需要更新。有关 React Native Windows 中 React Native 架构的信息,请参阅新旧架构。
有关 Windows 上原生开发的最新信息,请参阅原生平台:概述。
自动链接是一种机制,它允许你的 React Native 应用项目发现并使用 React Native 库提供的原生模块和视图管理器。
本文档涵盖了 Windows 平台的自动链接。它是 React Native CLI 自动链接文档 的扩展。
使用你喜欢的包管理器添加库并运行构建
yarn add react-native-webview
npx react-native run-windows
就是这样。无需再编辑原生文件即可使用原生代码。
工作原理
每个平台都定义了自己的
platforms
配置。它指示 CLI 如何查找有关原生依赖项的信息。此信息通过config
命令以 JSON 格式公开。然后,它被平台构建工具运行的脚本使用。每个脚本都应用逻辑以链接特定于其平台的原生依赖项。
config
提供的信息在 React Native 配置 Schema 中描述。
自动链接过程
自动链接作为 run-windows 命令 的一部分自动执行。
- 在构建时,自动链接首先执行,然后在调用
msbuild.exe
并实际开始构建之前。它使用config
提供的信息来生成和修改你的应用项目使用的某些原生文件。AutolinkedNativeModules.g.props
和AutolinkedNativeModules.g.targets
文件包含对必须构建的依赖项目所需的引用。你的应用的解决方案文件也可能被修改,以确保依赖项目将被构建。
AutolinkedNativeModules.g.(cpp|cs)
文件包含一个RegisterAutolinkedNativeModulePackages
方法,该方法注册了所有来自依赖项的指定IReactPackageProvider
。
- 在构建时,当
msbuild.exe
正在运行,但在编译你的应用项目之前,会进行检查以验证自动链接的文件是否最新,如果不是,则会发出警告。如果你使用的是
run-windows
,此检查应该始终通过。但是,如果你手动编辑了生成的文件,或者更改了你的 npm 依赖项并通过 Visual Studio 手动构建,则检查可能会失败。请参阅 手动运行自动链接。 - 在运行时,当你的应用启动时,它将调用
RegisterAutolinkedNativeModulePackages
,将原生依赖项注册到 React Native,使其可供 JS 代码使用。
替代方案
手动运行自动链接
如果你想在构建之外运行自动链接过程,你可以随时手动运行 autolink-windows 命令。
跳过自动链接
如果你想在 run-windows 命令 期间跳过自动链接过程,你可以传递 --no-autolink
选项。
npx react-native run-windows --no-autolink