如何使用第三方库中的picker_utils (API12) PickerUtil类
1. 安装依赖
ohpm i @pura/picker_utils
- 版本建议:安装时可通过 ohpm i @pura/picker_utils@latest 获取最新稳定版本
- 依赖说明:本库封装了系统原生多媒体选择能力,无需额外配置底层硬件接口
2.在使用的页面导入模块
import { CameraOptions, PickerUtil } from '@pura/picker_utils'; import { image } from **********'; import { camera, cameraPicker } from **********'; import { BusinessError } from **********';
- 关键模块:
- 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##数码相机##
#鸿蒙#