Skip to content

sud.chooseImage ​

从相册选择图片或使用相机拍照,取得图片的本地临时文件路径。

javascript
sud.chooseImage(object)

参数 ​

Object object ​

属性类型必填说明
countnumber否最多选择的图片数量,建议显式传入正整数;实际可选数量以当前运行环境支持为准
sizeTypeArray<string>否图片尺寸类型,可选值为 original(原图)、compressed(压缩图);建议显式指定需要的类型
sourceTypeArray<string>是图片来源,至少包含 album(相册)或 camera(相机)之一;可同时传入两者
successfunction否选择或拍照成功回调
failfunction否选择或拍照失败回调,包括用户取消
completefunction否调用结束回调,成功或失败均执行

count、sizeType 没有统一约定的默认值。建议完整传入 count、sizeType 和 sourceType,不要依赖省略参数后的行为。

返回值 ​

异步接口,通过 success 取得选择结果。

回调参数 ​

success ​

属性类型说明
tempFilePathsArray<string>选中图片的本地临时文件路径列表
tempFilesArray<Object>选中图片的文件信息列表

tempFiles 中每一项的结构:

属性类型说明
pathstring图片的本地临时文件路径

fail ​

属性类型说明
errCodenumber错误码
errMsgstring错误信息

complete ​

在 success 或 fail 之后调用,不携带参数。

使用说明 ​

  • 以实际返回的 tempFilePaths 或 tempFiles 长度为准,不要假设返回数量一定等于 count。
  • tempFiles 的附加文件信息可能因运行环境而异;跨环境使用图片路径时,优先读取 tempFilePaths。
  • 同时允许原图和压缩图时,实际返回的图片类型取决于当前运行环境;需要明确的结果时只指定一种 sizeType。
  • 图片来源不可用、用户取消、权限被拒绝或图片处理失败时,应处理 fail。
  • 返回的是本地临时文件路径,不是网络 URL。需要保存到系统相册时,调用 sud.saveImageToPhotosAlbum。
  • 上一次选择完成前,避免重复发起选择请求。

示例代码 ​

从相册选择一张原图,并预览选择结果。

javascript
sud.chooseImage({
    count: 1,
    sizeType: ['original'],
    sourceType: ['album'],
    success: (res) => {
        const paths = res.tempFilePaths;
        if (!paths || paths.length === 0) {
            return;
        }
        sud.previewImage({
            current: paths[0],
            urls: paths,
            fail: (err) => {
                console.error('预览失败', err.errCode, err.errMsg);
            },
        });
    },
    fail: (err) => {
        console.error('选图失败或已取消', err.errCode, err.errMsg);
    },
    complete: () => {
        console.log('选图调用结束');
    },
});