Expo Modules API:入门

编辑页面

了解如何开始使用 Expo Modules API。


For the complete documentation index, see llms.txt. Use this file to discover all available pages.

There are two ways to get started with the Expo Modules API: 你可以从头初始化一个新模块,也可以将 Expo Modules API 添加到现有模块中。本指南将带你从头创建一个新模块,而 在现有库中集成 则介绍后者。有关可用选项的完整列表,请参阅 create-expo-module 参考

使用 Expo Modules API 创建新模块的两种推荐流程:

这两种流程都将在后续章节中介绍。

向现有应用添加一个新模块

1

创建本地 Expo 模块

进入你的项目目录(包含 package.json 文件的目录),然后运行以下命令。这是创建本地 Expo 模块的推荐方式。

Terminal
npx create-expo-module@latest --local

你可以在 CLI 提示中提供一个有意义的模块名称。对于其余提示,也可以直接接受默认建议。

运行命令后,你会在项目中看到一个名为 modules 的新目录被创建。目录结构应如下所示:

modules
my-module
  android
  ios
  src
  expo-module.config.json
  index.ts

然后,如果你的项目还没有生成原生项目(androidios 目录),请运行以下命令;否则跳过此命令:

Terminal
npx expo prebuild --clean

Note: 如果你的项目根目录中已经存在一个通过 npx expo prebuild 创建的 ios 目录,你必须重新安装 pods:


Terminal
npx pod-install

2

使用本地模块

在你的应用中导入本地模块,例如在 App.jsApp.tsxsrc/app/index.tsx 中:

src/app/index.tsx
%%placeholder-start%%...%%placeholder-end%% import MyModule from '@/modules/my-module'; export default function HomeScreen() { return ( <View style={styles.container}> <Text>{MyModule.hello()}</Text> </View> ); }

在终端中启动开发服务器,这样当你在下一步编辑原生模块并构建应用时,改动就会反映到应用中:

Terminal
npx expo start

恭喜!你已经创建了一个本地 Expo 模块。现在可以开始开发它了。

Tip: 你也可以通过应用这些配置更改来使用绝对导入路径。

3

编辑模块

为了在本地开发和测试你的模块,我们将使用 Android Studio 和 Xcode 分别处理 Android 和 iOS。

Android

  1. 在 Android Studio 中打开项目里的 android 目录(这是在第 1 步中由 npx expo prebuild 生成的)。Gradle 完成原生目录项目同步可能需要一段时间。
  2. 项目同步完成后,打开 modules/my-module/android/src/main/java/expo/modules/mymodule/MyModule.kt 文件。
  3. hello 函数修改为返回不同的字符串,例如 "Hello world! 🌎🤖",并保存文件。
  4. 通过点击顶部菜单栏中的 Run 'app' 按钮来构建应用,你会在屏幕上看到这些更改。

每当你对原生代码做出更改时,都需要重复构建步骤以使更改生效。

iOS

  1. 在终端中运行 xed ios 命令,从 Xcode 打开项目中的 ios 目录(这是在第 1 步中由 npx expo prebuild 生成的)。
  2. Pods > Development Pods > MyModule 下,打开 MyModule.swift 文件。
  3. hello 函数修改为返回不同的字符串,例如 "Hello world! 🌎🍎",并保存文件。
  4. 通过点击顶部菜单栏中的 Run 按钮,或按 ⌘ Cmd + R 来构建应用,你会在屏幕上看到这些更改。

每当你对原生代码做出更改时,都需要重复构建步骤以使更改生效。

Tip: 如果你向模块中添加了新的原生文件,或者修改了 expo-module.config.json,请使用 npx pod-install 重新安装 pods。

Note: 还有其他方式可以让 Expo 模块与你的应用并行开发。例如,你可以使用 monorepo 或发布到 npm,具体请参阅 如何在项目中使用独立的 Expo 模块 指南。

使用示例项目创建一个新模块

1

创建 Expo 模块

要从零创建一个新的 Expo 模块,请按如下所示运行 create-expo-module 脚本。 该脚本会向你提出几个问题,然后生成原生 Expo 模块,以及适用于 Android 和 iOS、并使用你新模块的示例应用。

Terminal
npx create-expo-module@latest my-module

2

打开模块并启动开发服务器

进入模块目录,然后通过运行以下命令打开 Android 和/或 iOS 示例项目:

Terminal
cd my-module
npm run open:android
npm run open:ios

进入 example 目录并在终端中启动开发服务器,这样当你在下一步编辑原生模块并构建应用时,改动就会反映到应用中:

Terminal
cd example
npx expo start

Note: 如果你使用的是 Windows,你可以通过在 Android Studio 中打开 android 目录来打开示例项目,但无法打开 iOS 项目文件。

3

编辑模块

Android

  1. 打开 my-module/android/src/main/java/expo/modules/mymodule/MyModule.kt 文件。
  2. hello 函数修改为返回不同的字符串,例如 "Hello world! 🌎🤖",并保存文件。
  3. 通过点击顶部菜单栏中的 Run 'app' 按钮来构建应用,你会在屏幕上看到这些更改。

每当你对原生代码做出更改时,都需要重复构建步骤以使更改生效。

iOS

  1. Pods > Development Pods > MyModule 下,打开 MyModule.swift 文件。
  2. hello 函数修改为返回不同的字符串,例如 "Hello world! 🌎🍎",并保存文件。
  3. 通过点击顶部菜单栏中的 Run 按钮,或按 ⌘ Cmd + R 来构建应用,你会在屏幕上看到这些更改。

每当你对原生代码做出更改时,都需要重复构建步骤以使更改生效。

Tip: 如果你向模块中添加了新的原生文件,或者修改了 expo-module.config.json,请使用 npx pod-install 重新安装 pods。

下一步

现在你已经学会了如何初始化模块并对其进行简单修改,可以继续学习教程,或者直接深入查看 API 参考。

教程:创建原生模块

关于使用 Expo Modules API 创建一个可持久化设置的原生模块的教程。

Expo Modules API 参考

使用 Swift 和 Kotlin 创建原生模块的参考文档。