1. 安裝依賴
ohpm i @pura/picker_utils
版本建議:安裝時(shí)可通過ohpm i @pura/picker_utils@latest獲取最新穩(wěn)定版本
依賴說明:本庫封裝了系統(tǒng)原生多媒體選擇能力,無需額外配置底層硬件接口
2.在使用的頁面導(dǎo)入模塊
import { CameraOptions, PickerUtil } from '@pura/picker_utils';
import { image } from '@kit.ImageKit';
import { camera, cameraPicker } from '@kit.CameraKit';
import { BusinessError } from '@kit.BasicServicesKit';
關(guān)鍵模塊:
CameraOptions:相機(jī)參數(shù)配置接口
PickerUtil:核心工具類,提供多媒體選擇方法
BusinessError:統(tǒng)一錯(cuò)誤處理對象
3.拍照(需要有拍照權(quán)限)
let options: CameraOptions = {
? mediaTypes: [cameraPicker.PickerMediaType.PHOTO],
? cameraPosition: camera.CameraPosition.CAMERA_POSITION_BACK
}
PickerUtil.camera(options).then((result) => {
? this.uriStr = `調(diào)用相機(jī),返回uri:\n${result.resultUri}`;
}).catch((err: BusinessError) => {
? this.uriStr = `調(diào)用相機(jī),異常:\n${JSON.stringify(err)}`;
});
技術(shù)特點(diǎn):
系統(tǒng)級集成:直接調(diào)用設(shè)備原生相機(jī)應(yīng)用,保證最佳兼容性
零配置啟動(dòng):默認(rèn)使用系統(tǒng)推薦參數(shù),開發(fā)者無需調(diào)整分辨率/比例等細(xì)節(jié)
即時(shí)資源訪問:返回的 URI 可直接用于image.createImageSource()創(chuàng)建圖像源
應(yīng)用場景擴(kuò)展:
證件照拍攝(支持自動(dòng)保存到指定相冊目錄)
商品掃描識(shí)別(配合AI解析庫實(shí)現(xiàn)即時(shí)識(shí)別)
現(xiàn)場巡檢記錄(自動(dòng)添加地理位置水?。?/p>
最佳實(shí)踐:
調(diào)用前通過abilityAccessCtrl模塊動(dòng)態(tài)申請相機(jī)權(quán)限
大尺寸圖片處理建議使用image.createImageSource()進(jìn)行壓縮
重要場景可啟用地理位置標(biāo)記功能
4.選擇單張 / 多張圖片
PickerUtil.selectPhoto().then((uris) => {
? this.uriStr = `調(diào)用相冊,返回uris:\n${uris.join('\n')}`;
}).catch((err: BusinessError) => {
? this.uriStr = `調(diào)用相冊,異常:\n${JSON.stringify(err)}`;
})
技術(shù)特點(diǎn):
智能媒體過濾:自動(dòng)識(shí)別并過濾損壞/不支持的圖片格式
內(nèi)存優(yōu)化:流式加載機(jī)制避免大圖列表內(nèi)存溢出
多選控制:默認(rèn)支持多選,可通過參數(shù)配置單選模式
應(yīng)用場景擴(kuò)展:
社交媒體多圖發(fā)布(9宮格圖片選擇)
電子相冊制作(跨相冊圖片聚合選擇)
圖片批量編輯處理(濾鏡/裁剪/水印)
性能優(yōu)化建議:
超大型相冊建議分頁加載(需SDK支持)
使用Image組件時(shí)建議設(shè)置顯示尺寸避免內(nèi)存溢出
重要數(shù)據(jù)建議立即復(fù)制到應(yīng)用私有目錄
5.選擇單個(gè)或多個(gè)文件
let options: picker.DocumentSelectOptions = {
? maxSelectNumber: 9, //選擇媒體文件數(shù)量的最大值,默認(rèn)9。
? selectMode: picker.DocumentSelectMode.FILE, //支持選擇的資源類型,默認(rèn)文件
}
PickerUtil.selectDocument(options).then((uris) => {
? this.uriStr = `調(diào)用文件管理,返回uris:\n${uris.join('\n')}`
}).catch((err: BusinessError) => {
? this.uriStr = `調(diào)用文件管理,異常:\n${JSON.stringify(err)}`
});
特點(diǎn):調(diào)用系統(tǒng)文件管理器。允許開發(fā)者通過maxSelectNumber參數(shù)限制用戶選擇的文件數(shù)量上限,并通過selectMode指定選擇的是文件還是文件夾。返回選中的文件或文件夾的 URI 數(shù)組。
適用場景:適用于需要用戶從設(shè)備存儲(chǔ)中選擇特定文件的應(yīng)用場景,例如文檔上傳、附件選擇、導(dǎo)入外部數(shù)據(jù)文件、備份文件選擇等。
注意事項(xiàng):
本文檔展示了@pura/picker_utils庫的核心功能(拍照、選圖、選文件)的基本用法。
該庫可能提供更多高級選項(xiàng)和配置參數(shù)。如需了解更詳盡的功能說明、參數(shù)細(xì)節(jié)以及高級用法,請務(wù)必參考該第三方 SDK 的官方文檔或源碼。
本文檔所使用類的源地址鏈接
entry/src/main/ets/pages/utils/PickerUtilPage.ets · 桃花鎮(zhèn)童長老/harmony-utils - Gitee.com
本文檔所介紹的第三方庫源地址鏈接OpenHarmony三方庫中心倉
##三方SDK##數(shù)碼相機(jī)##