uniapp 如何唤起相机或选择相册
在uniapp中如何实现调用系统相机拍照或从相册选择图片的功能?需要兼容Android和iOS平台,最好能提供完整的代码示例和权限配置说明。另外,选择图片后如何获取到文件的临时路径?
2 回复
在uniapp中,使用uni.chooseImage
方法即可唤起相机或选择相册。示例代码:
uni.chooseImage({
count: 1,
sourceType: ['camera', 'album'],
success: (res) => {
console.log(res.tempFilePaths)
}
})
其中sourceType
参数控制来源:camera
调用相机,album
选择相册。
在 UniApp 中,您可以使用 uni.chooseImage
API 来唤起相机或选择相册。这个 API 提供了统一的接口,支持从相机拍照或从相册选择图片。
基本使用方法:
uni.chooseImage({
count: 1, // 最多选择图片数量,默认9
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['camera', 'album'], // 可以指定来源是相册还是相机,默认二者都有
success: function (res) {
// 返回选定照片的本地文件路径列表,tempFilePath 可以作为 img 标签的 src 属性显示图片
const tempFilePaths = res.tempFilePaths;
console.log('选择的图片路径:', tempFilePaths);
},
fail: function (err) {
console.log('选择图片失败:', err);
}
});
参数说明:
- count:最多可以选择的图片张数,默认 9
- sizeType:选择图片的尺寸,可选
original
(原图)或compressed
(压缩图) - sourceType:选择图片的来源
album
:从相册选图camera
:使用相机
单独调用相机或相册:
// 只调用相机
uni.chooseImage({
sourceType: ['camera'],
success: (res) => {
console.log('拍摄的图片:', res.tempFilePaths);
}
});
// 只调用相册
uni.chooseImage({
sourceType: ['album'],
success: (res) => {
console.log('选择的图片:', res.tempFilePaths);
}
});
注意事项:
- 在 H5 端,部分浏览器可能不支持直接调用相机
- 在 App 端使用前,需要在 manifest.json 中配置相机和相册权限
- 返回的临时路径在应用本次启动期间可以正常使用,如需持久保存需要调用
uni.saveFile
这个 API 兼容微信小程序语法,在 UniApp 中各端都能很好地支持。