harmony-utils之PickerUtil,拍照、文件選擇和保存,工具類
harmony-utils 簡介與說明
harmony-utils 一款功能豐富且極易上手的HarmonyOS工具庫,借助眾多實用工具類,致力于助力開發者迅速構建鴻蒙應用。其封裝的工具涵蓋了APP、設備、屏幕、授權、通知、線程間通信、彈框、吐司、生物認證、用戶首選項、拍照、相冊、掃碼、文件、日志、異常捕獲、字符、字符串、數字、集合、日期、隨機、base64、加密、解密、JSON等一系列的功能和作,能夠滿足各種不同的開發需求。
picker_utils 是harmony-utils拆分出來的一個子庫,包含 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 調用系統相機,拍照、錄視頻
PickerUtil.cameraEasy().then((uri) = > {
let uriStr = `調用相機,返回uri:n${uri}`;
}).catch((err: BusinessError) = > {
let str = `調用相機,異常:n${JSON.stringify(err)}`;
});
cameraEasy 調用系統相機,拍照、錄視頻
let options: CameraOptions = {
mediaTypes: [cameraPicker.PickerMediaType.PHOTO],
cameraPosition: camera.CameraPosition.CAMERA_POSITION_BACK
}
PickerUtil.camera(options).then((result) = > {
let uriStr = `調用相機,返回uri:n${result.resultUri}`;
}).catch((err: BusinessError) = > {
let str = `調用相機,異常:n${JSON.stringify(err)}`;
});
selectPhoto 通過選擇模式拉起photoPicker界面,用戶可以選擇一個或多個圖片/視頻
PickerUtil.selectPhoto().then((uris) = > {
let uriStr = `調用相冊,返回uris:n${uris.join('n')}`;
}).catch((err: BusinessError) = > {
let str = `調用相冊,異常:n${JSON.stringify(err)}`;
});
savePhoto 通過保存模式拉起photoPicker進行保存圖片或視頻資源的文件名,若無參數,則默認需要用戶自行輸入
let imgName = `大漂亮_${DateUtil.getTodayTime()}.png`;
let imgName1 = `小漂亮_${DateUtil.getTodayTime()}.png`;
PickerUtil.savePhoto([imgName, imgName1]).then(async (uris) = > {
let uri = uris[0];
let uriStr = `調用保存圖片,返回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 = `調用保存圖片,異常:n${JSON.stringify(err)}`;
})
selectDocument 通過選擇模式拉起documentPicker界面,用戶可以選擇一個或多個文件
let options: picker.DocumentSelectOptions = {
maxSelectNumber: 9, //選擇媒體文件數量的最大值,默認9。
selectMode: picker.DocumentSelectMode.FILE, //支持選擇的資源類型,默認文件
// fileSuffixFilters: ['圖片(.png, .jpg)|.png,.jpg', '文檔|.txt', '視頻|.mp4', '.pdf'], //選擇文件的后綴類型['后綴類型描述|后綴類型'](可選) 若選擇項存在多個后綴名,則每一個后綴名之間用英文逗號進行分隔(可選),后綴類型名不能超過100,選擇所有文件:'所有文件(*.*)|.*';
// defaultFilePathUri: "file://docs/storage/Users/currentUser/Download/com.harmony.utils", //指定選擇的文件或者目錄路徑(可選)
// authMode: true //選擇是否對指定文件或目錄授權,true為授權,當為true時,defaultFilePathUri為必選參數。
}
PickerUtil.selectDocument(options).then((uris) = > {
let uriStr = `調用文件管理,返回uris:n${uris.join('n')}`
}).catch((err: BusinessError) = > {
let uriStr = `調用文件管理,異常:n${JSON.stringify(err)}`
});
saveDocument 通過保存模式拉起documentPicker界面,用戶可以保存一個或多個文件
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工具包,封裝了常用工具類,提供一系列簡單易用的方法。幫助開發者快速構建鴻蒙應用。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 = `調用保存文件,異常:n${JSON.stringify(err)}`;
})
selectAudio 通過選擇模式拉起audioPicker界面,用戶可以選擇一個或多個音頻文件
PickerUtil.selectAudio().then((uris) = > {
let uriStr = `調用文件管理,返回uris:n${uris.join('n')}`;
}).catch((err: BusinessError) = > {
let uriStr = `調用文件管理,異常:n${JSON.stringify(err)}`;
});
saveAudio 通過保存模式拉起audioPicker界面,用戶可以保存一個或多個音頻文件
let fileName = `AudioViewPicker001.mp3`;
PickerUtil.saveAudio([fileName]).then((uris) = > {
let uri = uris[0];
let uriStr = `音頻文件,返回uris:n${uri}`;
}).catch((err: BusinessError) = > {
let uriStr = `調用保存文件,異常:n${JSON.stringify(err)}`;
})
創作不易,請給童長老點贊
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
API
+關注
關注
2文章
1568瀏覽量
63729 -
HarmonyOS
+關注
關注
80文章
2148瀏覽量
32537
發布評論請先 登錄
相關推薦
熱點推薦
harmony-utils之SM3,SM3工具類
harmony-utils之SM3,SM3工具類 harmony-utils 簡介與說明 harmony
harmony-utils之SM4,SM4加解密
harmony-utils之SM4,SM4加解密 harmony-utils 簡介與說明 harmony-utils 一款功能豐富且極易上手的HarmonyOS
HarmonyOS入門指南
上手的HarmonyOS工具庫,借助眾多實用工具類,致力于助力開發者迅速構建鴻蒙應用。 2、開源框架 harmony-utils 一款功能豐富且極易上手的HarmonyOS
harmony-utils之AuthUtil,生物認證相關工具類
# harmony-utils之AuthUtil,生物認證相關工具類 ## harmony-utils 簡介與說明 ------[
harmony-utils之ArrayUtil,集合工具類
# harmony-utils之ArrayUtil,集合工具類 ## harmony-utils 簡介與說明 ------[
如何使用第三方庫中的picker_utils (API12) PickerUtil類
1. 安裝依賴 ohpm i @pura /picker_utils 2.在使用的頁面導入模塊 import { CameraOptions, PickerUtil } from '@pura
如何使用第三方庫中的@pura/harmony-utils(V1.3.3)申請授權工具類二
5.申請授權(可組合申請)接上文 let p: Permissions[] = [ 'ohos.permission.ACTIVITY_MOTION' , 'ohos.permission.CAMERA' , 'ohos.permission.LOCATION' , 'ohos.permission.APPROXIMATELY_LOCATION' ];PermissionUtil.requestPermissions(p).then((grant) = > { if (grant) { ToastUtil.showToast( `申請授權,已通過...` ); }}) 如果第一次申請用戶沒有同意,可二次申請 PermissionUtil .requestPermissionOnSettingEasy (p) .then ((result) = > { ToastUtil .showToast ( `申請授權,結果:${result}` );}); 6.申請授權,拒絕后可二次申請 let p: Permissions[] = [ 'ohos
如何使用第三方庫中的@pura/harmony-utils(V1.3.3)申請授權工具類一
1. 安裝依賴 ohpm install @pura/harmony-utils 在oh-package.json5中看到以下代碼即表示安裝成功 2. 配置權限 在 module.json5 文件中

OMAP-L138_Flash And Boot Utils使用及編譯指導
電子發燒友網站提供《OMAP-L138_Flash And Boot Utils使用及編譯指導.pdf》資料免費下載
發表于 09-05 11:26
?0次下載

基于OpenHarmony標準系統的C++公共基礎類庫案例:SafeStack
/a28_utils_safestack
2、基礎知識
C++公共基礎類庫為標準系統提供了一些常用的C++開發工具類,包括:
文件、路徑、字
發表于 08-21 14:51
基于OpenHarmony標準系統的C++公共基礎類庫案例:SafeQueue
/a27_utils_safequeue
2、基礎知識
C++公共基礎類庫為標準系統提供了一些常用的C++開發工具類,包括:
文件、路徑、字
發表于 08-21 10:56
基于OpenHarmony標準系統的C++公共基礎類庫案例:ThreadPoll
個線程。每個線程每秒打印1段字符串,10秒后停止。
2、基礎知識
C++公共基礎類庫為標準系統提供了一些常用的C++開發工具類,包括:
文件、路徑、字符串相關操作的能力增強接口
讀寫鎖
發表于 08-12 11:42
評論