跳至主内容
版本:0.77

原生模块简介

非官方测试版翻译

本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →

非官方测试版翻译

本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →

信息

原生模块(Native Module)和原生组件(Native Components)是旧架构中使用的稳定技术。它们将在新架构稳定后被弃用。新架构采用 Turbo 原生模块Fabric 原生组件 来实现类似功能。

有时 React Native 应用需要访问 JavaScript 默认无法使用的原生平台 API,例如调用 Apple Pay 或 Google Pay 的原生 API。您可能希望复用现有的 Objective-C、Swift、Java 或 C++ 库而无需用 JavaScript 重新实现,或是编写高性能的多线程代码来处理图像处理等任务。

NativeModule 系统将 Java/Objective-C/C++(原生)类的实例作为 JavaScript 对象暴露给 JS,从而允许您在 JS 中执行任意原生代码。虽然这个功能不属于常规开发流程,但它的存在至关重要。如果 React Native 没有导出您的 JS 应用需要的原生 API,您完全可以自行导出!

原生模块设置

为 React Native 应用编写原生模块有以下几种方式:

  1. 创建可在 React Native 应用中导入的本地库。阅读创建本地库指南了解更多。

  2. 直接在 React Native 应用的 iOS/Android 项目中编写

  3. 打包为 NPM 模块,供您或其他 React Native 应用安装依赖

本指南将首先引导您在 React Native 应用中直接实现原生模块。但您接下来构建的原生模块也可以分发为 NPM 包。若您有此需求,请查看将原生模块设置为 NPM 包指南。

入门指引

后续章节将引导您在 React Native 应用中直接构建原生模块。作为前提条件,您需要准备一个 React Native 应用。如果还没有,可以按照此处的步骤创建。

假设您需要在 React Native 应用中通过 JavaScript 访问 iOS/Android 原生日历 API 来创建日历事件。React Native 默认不提供与原生日历库通信的 JavaScript API。但借助原生模块,您可以编写与原生日历 API 通信的代码,然后通过 React Native 应用中的 JavaScript 调用这些原生代码。

在接下来的章节中,您将为 AndroidiOS 平台创建这样的日历原生模块。