harmony-utils之PickerUtil,拍照、文件選擇和保存,工具類
harmony-utils 簡介與說明
harmony-utils 一款功能豐富且極易上手的HarmonyOS工具庫,借助眾多實用工具類,致力于助力開發(fā)者迅速構建鴻蒙應用。其封裝的工具涵蓋了APP、設備、屏幕、授權、通知、線程間通信、彈框、吐司、生物認證、用戶首選項、拍照、相冊、掃碼、文件、日志、異常捕獲、字符、字符串、數(shù)字、集合、日期、隨機、base64、加密、解密、JSON等一系列的功能和作,能夠滿足各種不同的開發(fā)需求。
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 調用系統(tǒng)相機,拍照、錄視頻
PickerUtil.cameraEasy().then((uri) = > {
let uriStr = `調用相機,返回uri:n${uri}`;
}).catch((err: BusinessError) = > {
let str = `調用相機,異常:n${JSON.stringify(err)}`;
});
cameraEasy 調用系統(tǒng)相機,拍照、錄視頻
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進行保存圖片或視頻資源的文件名,若無參數(shù),則默認需要用戶自行輸入
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, //選擇媒體文件數(shù)量的最大值,默認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為必選參數(shù)。
}
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工具包,封裝了常用工具類,提供一系列簡單易用的方法。幫助開發(fā)者快速構建鴻蒙應用。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)}`;
})
創(chuàng)作不易,請給童長老點贊
-
API
+關注
關注
2文章
1567瀏覽量
63719 -
HarmonyOS
+關注
關注
80文章
2146瀏覽量
32500
發(fā)布評論請先 登錄
HarmonyOS入門指南
harmony-utils之AuthUtil,生物認證相關工具類
harmony-utils之AssetUtil,關鍵資產(chǎn)存儲服務工具類
harmony-utils之ArrayUtil,集合工具類
harmony-utils之AppUtil,APP相關工具類

如何使用第三方庫中的picker_utils (API12) PickerUtil類
如何使用第三方庫中的@pura/harmony-utils(V1.3.3)申請授權工具類二
如何使用第三方庫中的@pura/harmony-utils(V1.3.3)申請授權工具類一

芯片開發(fā)必備工具|好用的文件比對工具有哪些?

labview選擇結構和讀寫保存文件
OMAP-L138_Flash And Boot Utils使用及編譯指導

評論