1. 安装依赖
ohpm i @pura/picker_utils
版本建议:安装时可通过ohpm i @pura/picker_utils@latest获取最新稳定版本
依赖说明:本库封装了系统原生多媒体选择能力,无需额外配置底层硬件接口
2.在使用的页面导入模块
import { CameraOptions, PickerUtil } from '@pura/picker_utils';
import { image } from '@kit.ImageKit';
import { camera, cameraPicker } from '@kit.CameraKit';
import { BusinessError } from '@kit.BasicServicesKit';
关键模块:
CameraOptions:相机参数配置接口
PickerUtil:核心工具类,提供多媒体选择方法
BusinessError:统一错误处理对象
3.拍照(需要有拍照权限)
let options: CameraOptions = {
mediaTypes: [cameraPicker.PickerMediaType.PHOTO],
cameraPosition: camera.CameraPosition.CAMERA_POSITION_BACK
}
PickerUtil.camera(options).then((result) => {
this.uriStr = `调用相机,返回uri:\n${result.resultUri}`;
}).catch((err: BusinessError) => {
this.uriStr = `调用相机,异常:\n${JSON.stringify(err)}`;
});
技术特点:
系统级集成:直接调用设备原生相机应用,保证最佳兼容性
零配置启动:默认使用系统推荐参数,开发者无需调整分辨率/比例等细节
即时资源访问:返回的 URI 可直接用于image.createImageSource()创建图像源
应用场景扩展:
证件照拍摄(支持自动保存到指定相册目录)
商品扫描识别(配合AI解析库实现即时识别)
现场巡检记录(自动添加地理位置水印)
最佳实践:
调用前通过abilityAccessCtrl模块动态申请相机权限
大尺寸图片处理建议使用image.createImageSource()进行压缩
重要场景可启用地理位置标记功能
4.选择单张 / 多张图片
PickerUtil.selectPhoto().then((uris) => {
this.uriStr = `调用相册,返回uris:\n${uris.join('\n')}`;
}).catch((err: BusinessError) => {
this.uriStr = `调用相册,异常:\n${JSON.stringify(err)}`;
})
技术特点:
智能媒体过滤:自动识别并过滤损坏/不支持的图片格式
内存优化:流式加载机制避免大图列表内存溢出
多选控制:默认支持多选,可通过参数配置单选模式
应用场景扩展:
社交媒体多图发布(9宫格图片选择)
电子相册制作(跨相册图片聚合选择)
图片批量编辑处理(滤镜/裁剪/水印)
性能优化建议:
超大型相册建议分页加载(需SDK支持)
使用Image组件时建议设置显示尺寸避免内存溢出
重要数据建议立即复制到应用私有目录
5.选择单个或多个文件
let options: picker.DocumentSelectOptions = {
maxSelectNumber: 9, //选择媒体文件数量的最大值,默认9。
selectMode: picker.DocumentSelectMode.FILE, //支持选择的资源类型,默认文件
}
PickerUtil.selectDocument(options).then((uris) => {
this.uriStr = `调用文件管理,返回uris:\n${uris.join('\n')}`
}).catch((err: BusinessError) => {
this.uriStr = `调用文件管理,异常:\n${JSON.stringify(err)}`
});
特点:调用系统文件管理器。允许开发者通过maxSelectNumber参数限制用户选择的文件数量上限,并通过selectMode指定选择的是文件还是文件夹。返回选中的文件或文件夹的 URI 数组。
适用场景:适用于需要用户从设备存储中选择特定文件的应用场景,例如文档上传、附件选择、导入外部数据文件、备份文件选择等。
注意事项:
本文档展示了@pura/picker_utils库的核心功能(拍照、选图、选文件)的基本用法。
该库可能提供更多高级选项和配置参数。如需了解更详尽的功能说明、参数细节以及高级用法,请务必参考该第三方 SDK 的官方文档或源码。
本文档所使用类的源地址链接
entry/src/main/ets/pages/utils/PickerUtilPage.ets · 桃花镇童长老/harmony-utils - Gitee.com
本文档所介绍的第三方库源地址链接OpenHarmony三方库中心仓
##三方SDK##数码相机##