1
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
import Base64 from "android.util.Base64"
|
||||
import ByteBuffer from 'java.nio.ByteBuffer';
|
||||
|
||||
export const base64ToArrayBuffer = (data : string) :ArrayBuffer => {
|
||||
return ArrayBuffer.fromByteBuffer(ByteBuffer.wrap(Base64.decode(data, Base64.DEFAULT)))
|
||||
}
|
||||
|
||||
export const arrayBufferToBase64 = (data : ArrayBuffer) : string => {
|
||||
return Base64.encodeToString(data.toByteBuffer().array(),Base64.DEFAULT)
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"x_library_s": "./lib/x_library_s.har"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
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 ''
|
||||
}
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>NSPrivacyAccessedAPITypes</key>
|
||||
<array/>
|
||||
<key>NSPrivacyCollectedDataTypes</key>
|
||||
<array/>
|
||||
<key>NSPrivacyTracking</key>
|
||||
<false/>
|
||||
<key>NSPrivacyTrackingDomains</key>
|
||||
<array/>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"deploymentTarget": "12"
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
import { Data } from 'Foundation';
|
||||
export const base64ToArrayBuffer = (data : string) : ArrayBuffer => {
|
||||
let dadx = new Data(base64Encoded = data)
|
||||
if(dadx == null) return new ArrayBuffer(0)
|
||||
return ArrayBuffer.fromData(dadx!)
|
||||
|
||||
}
|
||||
|
||||
export const arrayBufferToBase64 = (data : ArrayBuffer) : string => {
|
||||
let dadx = data.toData()
|
||||
return dadx.base64EncodedString()
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
|
||||
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
|
||||
let lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);
|
||||
for (let i = 0; i < chars.length; i++) {
|
||||
lookup[chars.charCodeAt(i)] = i;
|
||||
}
|
||||
export const encode = function (arraybuffer) {
|
||||
let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';
|
||||
for (i = 0; i < len; i += 3) {
|
||||
base64 += chars[bytes[i] >> 2];
|
||||
base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];
|
||||
base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];
|
||||
base64 += chars[bytes[i + 2] & 63];
|
||||
}
|
||||
if (len % 3 === 2) {
|
||||
base64 = base64.substring(0, base64.length - 1) + '=';
|
||||
}
|
||||
else if (len % 3 === 1) {
|
||||
base64 = base64.substring(0, base64.length - 2) + '==';
|
||||
}
|
||||
return base64;
|
||||
};
|
||||
|
||||
export const decode = function (base64) {
|
||||
let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;
|
||||
if (base64[base64.length - 1] === '=') {
|
||||
bufferLength--;
|
||||
if (base64[base64.length - 2] === '=') {
|
||||
bufferLength--;
|
||||
}
|
||||
}
|
||||
let arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);
|
||||
for (i = 0; i < len; i += 4) {
|
||||
encoded1 = lookup[base64.charCodeAt(i)];
|
||||
encoded2 = lookup[base64.charCodeAt(i + 1)];
|
||||
encoded3 = lookup[base64.charCodeAt(i + 2)];
|
||||
encoded4 = lookup[base64.charCodeAt(i + 3)];
|
||||
bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);
|
||||
bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);
|
||||
bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);
|
||||
}
|
||||
return arraybuffer;
|
||||
};
|
||||
@@ -0,0 +1,9 @@
|
||||
import {decode,encode} from "./base64ToArraybuffer.uts"
|
||||
|
||||
export const base64ToArrayBuffer = (data : string) :ArrayBuffer => {
|
||||
return decode(data)
|
||||
}
|
||||
|
||||
export const arrayBufferToBase64 = (data : ArrayBuffer) : string => {
|
||||
return encode(data)
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
|
||||
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
|
||||
let lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);
|
||||
for (let i = 0; i < chars.length; i++) {
|
||||
lookup[chars.charCodeAt(i)] = i;
|
||||
}
|
||||
export const encode = function (arraybuffer) {
|
||||
let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';
|
||||
for (i = 0; i < len; i += 3) {
|
||||
base64 += chars[bytes[i] >> 2];
|
||||
base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];
|
||||
base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];
|
||||
base64 += chars[bytes[i + 2] & 63];
|
||||
}
|
||||
if (len % 3 === 2) {
|
||||
base64 = base64.substring(0, base64.length - 1) + '=';
|
||||
}
|
||||
else if (len % 3 === 1) {
|
||||
base64 = base64.substring(0, base64.length - 2) + '==';
|
||||
}
|
||||
return base64;
|
||||
};
|
||||
|
||||
export const decode = function (base64) {
|
||||
let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;
|
||||
if (base64[base64.length - 1] === '=') {
|
||||
bufferLength--;
|
||||
if (base64[base64.length - 2] === '=') {
|
||||
bufferLength--;
|
||||
}
|
||||
}
|
||||
let arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);
|
||||
for (i = 0; i < len; i += 4) {
|
||||
encoded1 = lookup[base64.charCodeAt(i)];
|
||||
encoded2 = lookup[base64.charCodeAt(i + 1)];
|
||||
encoded3 = lookup[base64.charCodeAt(i + 2)];
|
||||
encoded4 = lookup[base64.charCodeAt(i + 3)];
|
||||
bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);
|
||||
bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);
|
||||
bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);
|
||||
}
|
||||
return arraybuffer;
|
||||
};
|
||||
@@ -0,0 +1,9 @@
|
||||
import {decode,encode} from "./base64ToArraybuffer.uts"
|
||||
|
||||
export const base64ToArrayBuffer = (data : string) :ArrayBuffer => {
|
||||
return decode(data)
|
||||
}
|
||||
|
||||
export const arrayBufferToBase64 = (data : ArrayBuffer) : string => {
|
||||
return encode(data)
|
||||
}
|
||||
Reference in New Issue
Block a user