Expo 模块 API:开始入门
编辑
了解如何开始使用 Expo 模块 API。
有两种方法可以开始使用 Expo 模块 API:您可以从头开始初始化一个新模块或将 Expo 模块 API 添加到现有模块中。本指南将指导您从头开始创建一个新模块,而 集成到现有库中 则涵盖后者。
创建新模块的两种推荐流程:
-
将新模块添加到现有 Expo 应用程序,并使用它来测试和开发您的模块。
-
在隔离中创建一个新模块并生成示例项目,如果您想在多个项目中重用它或将其发布到 npm。
这两个流程将在接下来的部分中进行介绍。
将新模块添加到现有应用程序
1
创建本地 Expo 模块
导航到您的项目目录(即包含 package.json 文件的目录),然后运行以下命令。这是创建本地 Expo 模块的推荐方法。
- npx create-expo-module@latest --local您可以在 CLI 提示中提供一个有意义的模块名称。对于其余的提示,您也可以接受默认建议。
运行命令后,您将看到在项目中创建了一个名为 modules 的新目录。目录结构应如下所示:
modulesmy-moduleandroidiossrcexpo-module.config.jsonindex.ts然后,如果您的项目没有生成本地项目(android 和 ios 目录),请运行以下命令,否则跳过此命令:
- npx expo prebuild --clean注意:如果您的项目根目录中存在使用
npx expo prebuild创建的预先存在的 ios 目录,则必须重新安装 pods:
Terminal-npx pod-install
2
使用本地模块
在您的应用程序中导入本地模块,例如在 App.js 或 App.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> ); }
在终端中启动开发服务器,以便在您编辑原生模块并在下一步构建应用程序时,所做的更改将反映在应用中:
- npx expo start恭喜!您已创建一个本地 Expo 模块。您现在可以开始对其进行开发。
提示:您还可以通过 应用以下配置更改 来使用绝对导入路径。
3
编辑模块
要在本地开发和测试您的模块,让我们使用 Android Studio 和 Xcode 来支持 Android 和 iOS。
Android
- 从您的项目中打开 android 目录(该目录由步骤 1 中的
npx expo prebuild生成),在 Android Studio 中可能需要一段时间以让 Gradle 完成同步原生目录项目。 - 一旦项目完成同步,打开 modules/my-module/android/src/main/java/expo/modules/mymodule/MyModule.kt 文件。
- 将
hello函数更改为返回不同的字符串,例如 "Hello world! 🌎🤖",并保存文件。 - 通过点击顶部菜单栏中的 Run 'app' 按钮构建应用程序,您将看到屏幕上的更改。
每次对原生代码进行更改时,您都必须重复构建步骤。
iOS
- 在 Xcode 中打开项目中的 ios 目录(该目录由步骤 1 中的
npx expo prebuild生成),运行xed ios命令。 - 在 Pods > Development Pods > MyModule 下,打开 MyModule.swift 文件。
- 将
hello函数更改为返回不同的字符串,例如 "Hello world! 🌎🍎",并保存文件。 - 通过点击顶部菜单栏中的 Run 按钮或按 ⌘ Cmd + R 来构建您的应用程序,您将看到屏幕上的更改。
每次对原生代码进行更改时,您都必须重复构建步骤。
提示:如果您向模块添加新的原生文件或修改 expo-module.config.json,请使用npx pod-install重新安装 pods。
注意:还可以使用其他流程并行处理 Expo 模块与您的应用程序。例如,您可以使用单一代码库或发布到 npm,具体说明见 如何在项目中使用独立的 Expo 模块 指南。
使用示例项目创建新模块
1
2
3
编辑模块
Android
- 打开 my-module/android/src/main/java/expo/modules/mymodule/MyModule.kt 文件。
- 将
hello函数更改为返回不同的字符串,例如 "Hello world! 🌎🤖",并保存文件。 - 通过点击顶部菜单栏中的 Run 'app' 按钮构建应用程序,您将看到屏幕上的更改。
每次对原生代码进行更改时,您都必须重复构建步骤。
iOS
- 在 Pods > Development Pods > MyModule 下,打开 MyModule.swift 文件。
- 将
hello函数更改为返回不同的字符串,例如 "Hello world! 🌎🍎",并保存文件。 - 通过点击顶部菜单栏中的 Run 按钮或按 ⌘ Cmd + R 来构建您的应用程序,您将看到屏幕上的更改。
每次对原生代码进行更改时,您都必须重复构建步骤。
提示:如果您向模块添加新的原生文件或修改 expo-module.config.json,请使用npx pod-install重新安装 pods。
下一步
现在您已经了解了如何初始化一个模块并对其进行简单更改,您可以继续进行教程或直接深入 API 参考。
有关使用 Expo 模块 API 创建原生模块的教程。
一个有关使用 Swift 和 Kotlin 创建原生模块的参考资料。