@exodus/react-native-image-picker

中文文档
8.2.1-exodus-4发布于 2026/01/07MITTypeScriptESM + CJS零依赖近 30 天下载 1.1万

允许您使用本地 UI 从设备库或直接从相机中选择媒体的 React 本地模块

中文使用文档
文档目录16 节
  1. 安装
  2. 新建筑
  3. 预配置( AKA 不使用新架构)
  4. 安装后步骤
  5. iOS系统
  6. 机器人
  7. API 参考
  8. 方法
  9. launchCamera()
  10. launchImageLibrary
  11. 选项
  12. 响应对象
  13. 资产对象
  14. 文件存储中的说明
  15. 错误代码
  16. 许可证

@exodus/ react-native-image-挑取者 @qq

一个反应原生模块,允许您从设备库或相机中选择相片/视频.

npm downloads npm package License

安装

yarn add @exodus/react-native-image-picker

新建筑

为了利用新建筑的运行

iOS系统

RCT_NEW_ARCH_ENABLED=1 npx pod-install ios

机器人

设定 newArchEnabled 改为 true 内部 android/gradle.properties

预配置( AKA 不使用新架构)

npx pod-install ios

安装后步骤

iOS系统

将合适的密钥添加到您的 Info.plist 根据您的要求:

所需经费密钥
从相片中选择图像/视频NSPhoto 图书馆用户描述
抓取图像NSCameraUsage 描述
抓取视频NSCameraUsage 描述和NSMicrophone Usage 描述

机器人

无需权限( N)saveToPhotos 需要许可 检查) (中文(简体) ).

说明: 这个库不需要 Manifest.permission.CAMERA如果您的应用程序宣布使用此许可, 您必须在使用前获得许可 launchCamera。 。 。 .

针对Android API 级别低于 30

如果你的应用程序 minSdkVersion 它没有包括或取决于 androidx.activity:activity:1.9.+ 或更新版本,您需要将以下行添加到您的依赖部分 app/build.gradle 用于确保支持背出AndroidX Photo Picker的文件 :

dependencies {
    ...
    implementation("androidx.activity:activity:1.9.+")
    ...
}

此外,你可能需要更新 AndroidManifest.xml 以触发后移植相片拾取器的安装。 作为参考,您可以在 example/android/app/src/main/AndroidManifest.xml 财务报告和审定财务报表 example/android/app/build.gradle。 。 。 .

详见AndroidX Photo Picker上的Android文件: https://developer.android.com/training/data-storage/shared/photopker 互联网档案馆的存檔,存档日期2013-12-21

API 参考

方法

import {
  launchCamera,
  launchImageLibrary,
} from '@exodus/react-native-image-picker';

launchCamera()

发射相机拍摄相片或视频.

launchCamera(options?, callback);

// You can also use as a promise without 'callback':
const result = await launchCamera(options?);

见 选项 详情请查阅 options。 。 。 .

这个 callback 将调用一个响应对象,参见 响应对象。 。 。 .

launchImageLibrary

发射画廊取出图像或视频.

launchImageLibrary(options?, callback)

// You can also use as a promise without 'callback':
const result = await launchImageLibrary(options?);

见 选项 详情请查阅 options。 。 。 .

这个 callback 将调用一个响应对象,参见 响应对象。 。 。 .

选项

选项iOS系统机器人说明
介质类型photo 或者说 video 或者说 mixed(单位:千美元)launchCamera android 不支持“ 混合” .
限制MIME 类型无包含允许选择的 mime 类型的阵列 。 默认为空( 每件事) .
最大宽度以调整图像大小.
最大重度以调整图像大小.
视频质量low, (中文(简体) ), medium,或 high 在iOS上, low 或者说 high 安卓号.
期限视频最长持续时间(以秒计).
质量0到1号,照片.
转换质量无从HEIC/HEIF转换为JPEG,0到1. 默认是 0.92
相机类型"back" 或"front"(在少数和机器人设备中可能不支持).
包含Base64若为 true,创建图像的 Base64 字符串(Avoid由于性能原因在大图像文件中使用).
包含Extra若为 true,其中将包括需要请求库权限的额外数据(即exif数据).
保存图(宝莲)只用于 launchCamera,将抓取的图像/视频文件保存到公众照片.
选择范围支持提供任意整数值。 使用 0 允许使用 iOS 版本 & Android 14 & Android 版本 & Android 13 上的任何文件数量。 默认是 1。 。 。 .
演示文稿样式无控制拾取者如何呈现. currentContext, (中文(简体) ), pageSheet, (中文(简体) ), fullScreen, (中文(简体) ), formSheet, (中文(简体) ), popover, (中文(简体) ), overFullScreen, (中文(简体) ), overCurrentContext默认为 currentContext。 。 。 .
格式化 ASMp4无将所选视频转换为 MP4(仅iOS).
资产代表模式如果一个资产在iOS上包含一个以上,或者如果设置为"当前",则无法将HEIC/HEIF转换为Android上的JPEG,则决定使用哪种表示方式. 可能的值:"自动","当前","兼容". 默认为"自动" .

|

响应对象

键iOS系统机器人说明
撤销true 如果用户取消了进程
错误代码检查 错误代码 用于所有错误代码
错误描述错误, 只用于调试目的
资产一组选定的媒体, 提及资产对象

资产对象

键iOS系统机器人照片/录像需要权限说明
基础64只有图片无图像的基数64 字符串( 只有相片)
乌里两个无应用程序特定缓存存储中的文件 uri 。 除了挑的时候 来自Android画廊的视频 您可以在其中只读取内容 uri, 以便在此情况下获取文件 uri 复制文件, 用任何反应本地库应用特定存储 .
原始路径无两个无原始文件路径 .
宽度两个无资产方面
高度两个无资产方面
文件大小两个无文件大小
类型两个无文件类型
文件Name两个无文件名称
会期只有视频无选定的视频持续时间以秒计
位速率-- -- . . 只有视频无选定视频的平均比特率(以比特/秒计),如果有的话。 (仅限机器人)
时间戳两个对资产的时间戳。 仅在“ 包含Extra” 属实时才包含
编号两个对照片或视频的本地标识符。 在 Android 上, 这与文件相同Name

文件存储中的说明

通过相机捕获到的图像/视频会被存储在临时文件夹中,以便随时被删除,所以不要期望它会持续下去. 使用 saveToPhotos: true (默认为 false)在公相中保存文件. saveToPhotos 需求 WRITE_EXTERNAL_STORAGE android 28及以下的许可(由于库不处理此事项,该许可必须由App手动获得).

错误代码

代码说明
相机类型( n)设备上没有相机
权限权限未满足
其他人员其他出错( 请检查出错 )

许可证

麻省理工学院

版本与发布记录

@exodus/react-native-image-picker 共发布 15 个版本,首次发布于 2021/11/25;过去 12 个月发布了 1 个版本。

版本发布日期距今
8.2.1-exodus-4latest2026/01/0710 个月前
8.2.1-exodus-3exodus-32025/10/301 年前
8.2.1-exodus-2exodus-22025/10/291 年前
8.2.1-exodus-1exodus-12025/10/291 年前
0.28.1-exodus.102023/01/303 年前
0.28.1-exodus.92021/12/164 年前

关于 @exodus/react-native-image-picker 的常见问题

@exodus/react-native-image-picker 是什么?

允许您使用本地 UI 从设备库或直接从相机中选择媒体的 React 本地模块

如何安装 @exodus/react-native-image-picker?

在项目目录运行 npm install @exodus/react-native-image-picker,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(*)、react-native(*)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@exodus/react-native-image-picker 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@exodus/react-native-image-picker 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@exodus/react-native-image-picker 可以商用吗?

@exodus/react-native-image-picker 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@exodus/react-native-image-picker 的下载量有多少?

根据 npm 官方下载统计,@exodus/react-native-image-picker 在 2026/10/14 – 2026/11/12 这 30 天内被下载 10,503 次,日均约 350 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@exodus/react-native-image-picker 还在维护吗?

最新版本 8.2.1-exodus-4 发布于 2026/01/07(10 个月前);至今共发布 15 个版本,其中过去 12 个月发布了 1 个;首次发布于 2021/11/25。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。