Expo 模块 API:开始入门

编辑

了解如何开始使用 Expo 模块 API。


有两种方法可以开始使用 Expo 模块 API:您可以从头开始初始化一个新模块或将 Expo 模块 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

注意:如果您的项目根目录中存在使用 npx expo prebuild 创建的预先存在的 ios 目录,则必须重新安装 pods:


Terminal
npx pod-install

2

使用本地模块

在您的应用程序中导入本地模块,例如在 App.jsApp.tsxapp/(tabs)/index.tsx 中:

app/(tabs)/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 模块。您现在可以开始对其进行开发。

提示:您还可以通过 应用以下配置更改 来使用绝对导入路径。

3

编辑模块

要在本地开发和测试您的模块,让我们使用 Android Studio 和 Xcode 来支持 Android 和 iOS。

Android

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

每次对原生代码进行更改时,您都必须重复构建步骤。

iOS

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

每次对原生代码进行更改时,您都必须重复构建步骤。

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

注意:还可以使用其他流程并行处理 Expo 模块与您的应用程序。例如,您可以使用单一代码库或发布到 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

注意: 如果您使用 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 来构建您的应用程序,您将看到屏幕上的更改。

每次对原生代码进行更改时,您都必须重复构建步骤。

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

下一步

现在您已经了解了如何初始化一个模块并对其进行简单更改,您可以继续进行教程或直接深入 API 参考。

教程:创建一个原生模块

有关使用 Expo 模块 API 创建原生模块的教程。

Expo 模块 API 参考

一个有关使用 Swift 和 Kotlin 创建原生模块的参考资料。