Quasar 上传头像
2023-05-12 本文已影响0人
alue
Quasar框架最大的价值是能够低成本的开发跨平台应用。
例如,一个常见的上传图片的需求。在web中,一般就是就是打开本地文件路径;而在手机端,则要打开摄像头拍照或者从照片库中上传图片。
Quasar 则集成了 capacitor 插件,开发者使用相同的函数,插件会根据平台的不同,自动完成相应的功能。在网页版时,下述代码会直接打开本地文件浏览器,在手机端,则会调用摄像头和照片库。
import { Camera, CameraResultType } from '@capacitor/camera';
async function captureImage() {
const image = await Camera.getPhoto({
quality: 90,
allowEditing: true,
resultType: CameraResultType.Base64,
});
if (!image.base64String) return;
const base64Data = image.base64String;
// 将照片转换为 Blob 对象
const byteCharacters = atob(base64Data);
const byteNumbers = new Array(byteCharacters.length);
for (let i = 0; i < byteCharacters.length; i++) {
byteNumbers[i] = byteCharacters.charCodeAt(i);
}
const byteArray = new Uint8Array(byteNumbers);
const blob = new Blob([byteArray], { type: 'image/jpeg' });
const formData = new FormData();
formData.append('file', blob);
const { data } = await request.put<string>(url.avatar, formData);
}