Skip to content

showImage

选择图片或拍照,支持从相册选择或调用相机拍照。

前置依赖

依赖参数

参数名类型说明
deps.chooseImageUniApp['chooseImage']选择图片 API
deps.logConsole['log']日志输出
deps.errorConsole['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
}

参数

参数名类型必填默认值说明
optionsImageOptions{}图片选择选项
options.countnumber9最多可以选择的图片张数
options.sizeType('original' | 'compressed')[]['original', 'compressed']图片尺寸类型
options.sourceType('album' | 'camera')[]['album', 'camera']图片来源类型
options.cropbooleanfalse是否允许裁剪
depsShowImageDeps-依赖注入对象

返回值

类型说明
Promise<ImageResult>Promise,成功时返回图片选择结果,包含临时文件路径和文件信息

工作原理

  1. 环境检测:根据 detectEnvironment 函数检测当前运行环境(小程序/H5/App)
  2. 平台适配:根据环境调用对应的适配器实现
    • 小程序端:使用 uni.chooseImage
    • H5端:使用 uni.chooseImage(部分功能受限)
    • App端:使用 uni.chooseImage
  3. 图片处理:统一处理返回的图片数据,包括路径、大小、类型等信息
  4. 返回结果:返回标准化的图片选择结果

支持多平台统一接口,自动适配不同环境的实现差异。