Files
2026-09-24 16:25:22 +08:00

42 lines
1.1 KiB
Plaintext

import { util } from "@kit.ArkTS";
import { BusinessError } from "@kit.BasicServicesKit";
/**
* 将base64数据转换为arraybuffer
* @param data base64数据
* @returns Promise<ArrayBuffer>
*/
function btoa_x(data: string): ArrayBuffer {
const base64 = new util.Base64Helper();
const dataSplit = data.split(",");
const uint8Array = base64.decodeSync(dataSplit.length > 1 ? data.split(",")[1] : data);
const buffer: ArrayBuffer = uint8Array.buffer.slice(0, uint8Array.byteLength);
return buffer
}
function atob_x(data:ArrayBuffer){
const base64 = new util.Base64Helper();
const unit8data = new Uint8Array(data)
return base64.encodeToStringSync(unit8data)
}
export const base64ToArrayBuffer = (data : string) :ArrayBuffer => {
try {
return btoa_x(data)
} catch (error) {
const e = error as BusinessError;
console.error("TMUI",e.message)
return new ArrayBuffer(0)
}
}
export const arrayBufferToBase64 = (data : ArrayBuffer) : string => {
try {
return atob_x(data)
} catch (error) {
const e = error as BusinessError;
console.error("TMUI",e.message)
return ''
}
}