showImage
选择图片或拍照,支持从相册选择或调用相机拍照。
前置依赖
依赖参数
| 参数名 | 类型 | 说明 |
|---|---|---|
deps.chooseImage | UniApp['chooseImage'] | 选择图片 API |
deps.log | Console['log'] | 日志输出 |
deps.error | Console['error'] | 错误输出 |
deps.detectEnvironment | () => 'h5' | 'miniapp' | 'app' | 'unknown' | 检测环境函数(可选) |
环境要求
- UniApp环境: 使用UniApp API,支持小程序、H5、App端
函数签名
typescript
function showImage(
options?: ImageOptions,
deps: ShowImageDeps
): Promise<ImageResult>
interface ShowImageDeps {
chooseImage: UniApp['chooseImage']
log: Console['log']
error: Console['error']
detectEnvironment?: () => 'h5' | 'miniapp' | 'app' | 'unknown'
}
interface ImageOptions {
count?: number
sizeType?: ('original' | 'compressed')[]
sourceType?: ('album' | 'camera')[]
crop?: boolean
extraData?: Record<string, unknown>
}
interface ImageResult {
errMsg?: string
tempFilePaths?: string[]
tempFiles?: Array<{
path: string
size: number
type?: string
name?: string
}>
raw?: unknown
}参数
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
options | ImageOptions | 否 | {} | 图片选择选项 |
options.count | number | 否 | 9 | 最多可以选择的图片张数 |
options.sizeType | ('original' | 'compressed')[] | 否 | ['original', 'compressed'] | 图片尺寸类型 |
options.sourceType | ('album' | 'camera')[] | 否 | ['album', 'camera'] | 图片来源类型 |
options.crop | boolean | 否 | false | 是否允许裁剪 |
deps | ShowImageDeps | 是 | - | 依赖注入对象 |
返回值
| 类型 | 说明 |
|---|---|
Promise<ImageResult> | Promise,成功时返回图片选择结果,包含临时文件路径和文件信息 |
工作原理
- 环境检测:根据
detectEnvironment函数检测当前运行环境(小程序/H5/App) - 平台适配:根据环境调用对应的适配器实现
- 小程序端:使用
uni.chooseImage - H5端:使用
uni.chooseImage(部分功能受限) - App端:使用
uni.chooseImage
- 小程序端:使用
- 图片处理:统一处理返回的图片数据,包括路径、大小、类型等信息
- 返回结果:返回标准化的图片选择结果
支持多平台统一接口,自动适配不同环境的实现差异。