99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

harmony-utils之PickerUtil,拍照、文件選擇和保存,工具類

童長(zhǎng)老 ? 2025-06-27 16:03 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

harmony-utils之PickerUtil,拍照、文件選擇和保存,工具類

harmony-utils 簡(jiǎn)介與說(shuō)明


harmony-utils 一款功能豐富且極易上手的HarmonyOS工具庫(kù),借助眾多實(shí)用工具類,致力于助力開(kāi)發(fā)者迅速構(gòu)建鴻蒙應(yīng)用。其封裝的工具涵蓋了APP、設(shè)備、屏幕、授權(quán)、通知、線程間通信、彈框、吐司、生物認(rèn)證、用戶首選項(xiàng)、拍照、相冊(cè)、掃碼、文件、日志、異常捕獲、字符、字符串、數(shù)字、集合、日期、隨機(jī)、base64、加密、解密、JSON等一系列的功能和作,能夠滿足各種不同的開(kāi)發(fā)需求。
picker_utils 是harmony-utils拆分出來(lái)的一個(gè)子庫(kù),包含 PickerUtil、PhotoHelper、ScanUtil。

下載安裝
ohpm i @pura/harmony-utils
ohpm i @pura/picker_utils

//全局初始化方法,在UIAbility的onCreate方法中初始化 AppUtil.init()
 onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
   AppUtil.init(this.context);
 }

API方法與使用


camera 調(diào)用系統(tǒng)相機(jī),拍照、錄視頻
PickerUtil.cameraEasy().then((uri) = > {
  let uriStr = `調(diào)用相機(jī),返回uri:n${uri}`;
}).catch((err: BusinessError) = > {
  let str = `調(diào)用相機(jī),異常:n${JSON.stringify(err)}`;
});
cameraEasy 調(diào)用系統(tǒng)相機(jī),拍照、錄視頻
let options: CameraOptions = {
  mediaTypes: [cameraPicker.PickerMediaType.PHOTO],
  cameraPosition: camera.CameraPosition.CAMERA_POSITION_BACK
}
PickerUtil.camera(options).then((result) = > {
  let uriStr = `調(diào)用相機(jī),返回uri:n${result.resultUri}`;
}).catch((err: BusinessError) = > {
  let str = `調(diào)用相機(jī),異常:n${JSON.stringify(err)}`;
});
selectPhoto 通過(guò)選擇模式拉起photoPicker界面,用戶可以選擇一個(gè)或多個(gè)圖片/視頻
PickerUtil.selectPhoto().then((uris) = > {
  let uriStr = `調(diào)用相冊(cè),返回uris:n${uris.join('n')}`;
}).catch((err: BusinessError) = > {
  let str = `調(diào)用相冊(cè),異常:n${JSON.stringify(err)}`;
});
savePhoto 通過(guò)保存模式拉起photoPicker進(jìn)行保存圖片或視頻資源的文件名,若無(wú)參數(shù),則默認(rèn)需要用戶自行輸入
let imgName = `大漂亮_${DateUtil.getTodayTime()}.png`;
let imgName1 = `小漂亮_${DateUtil.getTodayTime()}.png`;
PickerUtil.savePhoto([imgName, imgName1]).then(async (uris) = > {
  let uri = uris[0];
  let uriStr = `調(diào)用保存圖片,返回uris:n${uri}`;
  let file = FileUtil.openSync(uri);
  FileUtil.copyFile(this.filePath, file.fd).then(() = > {
    let uriStr = `保存圖片,返回uris:n${uri}`;
    ToastUtil.showToast("圖片1保存成功");
  });

  let file1 = FileUtil.openSync(uris[1]);
  let pixelMap1 = await ImageUtil.getPixelMapFromMedia($r("app.media.test_as3"));
  let packOpts: image.PackingOption = { format: 'image/png', quality: 100 };
  ImageUtil.packToFileFromPixelMap(pixelMap1, file1.fd, packOpts).then(() = > {
    let uriStr = `保存圖片,返回uris:n${uris[1]}`;
    ToastUtil.showToast("圖片2保存成功");
  });
}).catch((err: BusinessError) = > {
  let uriStr = `調(diào)用保存圖片,異常:n${JSON.stringify(err)}`;
})
selectDocument 通過(guò)選擇模式拉起documentPicker界面,用戶可以選擇一個(gè)或多個(gè)文件
let options: picker.DocumentSelectOptions = {
  maxSelectNumber: 9, //選擇媒體文件數(shù)量的最大值,默認(rèn)9。
  selectMode: picker.DocumentSelectMode.FILE, //支持選擇的資源類型,默認(rèn)文件
  // fileSuffixFilters: ['圖片(.png, .jpg)|.png,.jpg', '文檔|.txt', '視頻|.mp4', '.pdf'], //選擇文件的后綴類型['后綴類型描述|后綴類型'](可選) 若選擇項(xiàng)存在多個(gè)后綴名,則每一個(gè)后綴名之間用英文逗號(hào)進(jìn)行分隔(可選),后綴類型名不能超過(guò)100,選擇所有文件:'所有文件(*.*)|.*';
  // defaultFilePathUri: "file://docs/storage/Users/currentUser/Download/com.harmony.utils", //指定選擇的文件或者目錄路徑(可選)
  // authMode: true //選擇是否對(duì)指定文件或目錄授權(quán),true為授權(quán),當(dāng)為true時(shí),defaultFilePathUri為必選參數(shù)。
}
PickerUtil.selectDocument(options).then((uris) = > {
  let uriStr = `調(diào)用文件管理,返回uris:n${uris.join('n')}`
}).catch((err: BusinessError) = > {
  let uriStr = `調(diào)用文件管理,異常:n${JSON.stringify(err)}`
});
saveDocument 通過(guò)保存模式拉起documentPicker界面,用戶可以保存一個(gè)或多個(gè)文件
let fileName = `test_easy_${DateUtil.getTodayTime()}.txt`;
PickerUtil.saveDocumentEasy([fileName]).then((paths) = > {
  let path = paths[0];
  this.cacheUri = FileUtil.getUriFromPath(path);
  PreferencesUtil.put("picker_cache_uri", this.cacheUri);
  let txtStr = `“harmony-utils 一款高效的OpenHarmony/HarmonyOS工具包,封裝了常用工具類,提供一系列簡(jiǎn)單易用的方法。幫助開(kāi)發(fā)者快速構(gòu)建鴻蒙應(yīng)用。nn`;
  FileUtil.writeEasy(path, txtStr).then(() = > {
    let uriStr = `文件保存成功,返回uris:n${path}`;
    ToastUtil.showToast("文件保存成功!");
  }).catch((err: BusinessError) = > {
    let uriStr = `文件保存,異常:n${JSON.stringify(err)}`;
  })
}).catch((err: BusinessError) = > {
  let uriStr = `調(diào)用保存文件,異常:n${JSON.stringify(err)}`;
})
selectAudio 通過(guò)選擇模式拉起audioPicker界面,用戶可以選擇一個(gè)或多個(gè)音頻文件
PickerUtil.selectAudio().then((uris) = > {
  let uriStr = `調(diào)用文件管理,返回uris:n${uris.join('n')}`;
}).catch((err: BusinessError) = > {
  let uriStr = `調(diào)用文件管理,異常:n${JSON.stringify(err)}`;
});
saveAudio 通過(guò)保存模式拉起audioPicker界面,用戶可以保存一個(gè)或多個(gè)音頻文件
let fileName = `AudioViewPicker001.mp3`;
PickerUtil.saveAudio([fileName]).then((uris) = > {
  let uri = uris[0];
  let uriStr = `音頻文件,返回uris:n${uri}`;
}).catch((err: BusinessError) = > {
  let uriStr = `調(diào)用保存文件,異常:n${JSON.stringify(err)}`;
})

創(chuàng)作不易,請(qǐng)給童長(zhǎng)老點(diǎn)贊

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1571

    瀏覽量

    63771
  • HarmonyOS
    +關(guān)注

    關(guān)注

    80

    文章

    2143

    瀏覽量

    32637
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    harmony-utilsToastUtil,吐司工具

    harmony-utilsToastUtil,吐司工具 harmony-utils 簡(jiǎn)介與說(shuō)明 [h
    的頭像 發(fā)表于 06-30 17:35 ?84次閱讀

    harmony-utilsTypeUtil,類型檢查工具

    harmony-utilsTypeUtil,類型檢查工具 harmony-utils 簡(jiǎn)介與說(shuō)明 [
    的頭像 發(fā)表于 06-30 17:35 ?77次閱讀

    harmony-utilsWantUtil,Want工具

    harmony-utilsWantUtil,Want工具 harmony-utils 簡(jiǎn)介與說(shuō)明 [
    的頭像 發(fā)表于 06-30 17:34 ?76次閱讀

    harmony-utilsWindowUtil,窗口相關(guān)工具

    harmony-utilsWindowUtil,窗口相關(guān)工具 harmony-utils 簡(jiǎn)介與說(shuō)明 [
    的頭像 發(fā)表于 06-30 17:33 ?79次閱讀

    harmony-utilsBase64Util,Base64工具

    harmony-utilsBase64Util,Base64工具 harmony-utils 簡(jiǎn)介與說(shuō)明 [
    的頭像 發(fā)表于 06-30 17:32 ?82次閱讀

    harmony-utilsAES,AES加解密

    harmony-utilsAES,AES加解密 harmony-utils 簡(jiǎn)介與說(shuō)明 [harmony-utils] 一款功能豐富且極易上手的HarmonyOS
    的頭像 發(fā)表于 06-30 17:30 ?96次閱讀

    harmony-utilsDES,DES加解密

    harmony-utilsDES,DES加解密 harmony-utils 簡(jiǎn)介與說(shuō)明 [harmony-utils]一款功能豐富且極易上手的HarmonyOS
    的頭像 發(fā)表于 06-30 17:16 ?85次閱讀

    harmony-utilsRSA,RSA加解密

    harmony-utilsRSA,RSA加解密 harmony-utils 簡(jiǎn)介與說(shuō)明 [harmony-utils] 一款功能豐富且極易上手的HarmonyOS
    的頭像 發(fā)表于 06-30 16:52 ?70次閱讀

    harmony-utilsSHA,SHA工具

    harmony-utilsSHA,SHA工具 harmony-utils 簡(jiǎn)介與說(shuō)明 [harmon
    的頭像 發(fā)表于 06-30 16:51 ?104次閱讀

    harmony-utilsMD5,MD5工具

    harmony-utilsMD5,MD5工具 harmony-utils 簡(jiǎn)介與說(shuō)明 [harmon
    的頭像 發(fā)表于 06-30 16:49 ?109次閱讀

    harmony-utilsSM3,SM3工具

    harmony-utilsSM3,SM3工具 harmony-utils 簡(jiǎn)介與說(shuō)明 harmony
    的頭像 發(fā)表于 06-28 18:37 ?104次閱讀

    harmony-utilsAuthUtil,生物認(rèn)證相關(guān)工具

    # harmony-utilsAuthUtil,生物認(rèn)證相關(guān)工具 ## harmony-utils 簡(jiǎn)介與說(shuō)明 ------[
    的頭像 發(fā)表于 06-26 17:43 ?85次閱讀

    harmony-utilsAssetUtil,關(guān)鍵資產(chǎn)存儲(chǔ)服務(wù)工具

    harmony-utilsAssetUtil,關(guān)鍵資產(chǎn)存儲(chǔ)服務(wù)工具
    的頭像 發(fā)表于 06-26 17:42 ?80次閱讀

    harmony-utilsArrayUtil,集合工具

    # harmony-utilsArrayUtil,集合工具 ## harmony-utils 簡(jiǎn)介與說(shuō)明 ------[
    的頭像 發(fā)表于 06-26 17:38 ?88次閱讀

    harmony-utilsTempUtil,溫度轉(zhuǎn)換工具

    harmony-utilsTempUtil,溫度轉(zhuǎn)換工具 harmony-utils 簡(jiǎn)介與說(shuō)明 [
    的頭像 發(fā)表于 06-26 00:50 ?11次閱讀