From 3a1ad68c6b5abe4f890e789341c5792764c17552 Mon Sep 17 00:00:00 2001 From: qiang Date: Fri, 22 Apr 2022 14:21:26 +0800 Subject: [PATCH] feat(App): add requireGlobal --- .../src/service/api/internal/global.ts | 23 +++++++++++++++++++ .../uni-cli-shared/src/json/app/pages/code.ts | 16 +++++++++++-- packages/uni-mp-core/src/api/promise.ts | 2 +- 3 files changed, 38 insertions(+), 3 deletions(-) diff --git a/packages/uni-app-plus/src/service/api/internal/global.ts b/packages/uni-app-plus/src/service/api/internal/global.ts index a6d456358..af0fb9fe9 100644 --- a/packages/uni-app-plus/src/service/api/internal/global.ts +++ b/packages/uni-app-plus/src/service/api/internal/global.ts @@ -40,3 +40,26 @@ export function restoreGlobal( } __uniConfig.serviceReady = true } + +export function requireGlobal() { + const list = [ + 'ArrayBuffer', + 'Int8Array', + 'Uint8Array', + 'Uint8ClampedArray', + 'Int16Array', + 'Uint16Array', + 'Int32Array', + 'Uint32Array', + 'Float32Array', + 'Float64Array', + 'BigInt64Array', + 'BigUint64Array', + ] + const object: Record = {} + for (let i = 0; i < list.length; i++) { + const key = list[i] + object[key] = (global as any)[key] + } + return object +} diff --git a/packages/uni-cli-shared/src/json/app/pages/code.ts b/packages/uni-cli-shared/src/json/app/pages/code.ts index 37dfe8231..7008bdff6 100644 --- a/packages/uni-cli-shared/src/json/app/pages/code.ts +++ b/packages/uni-cli-shared/src/json/app/pages/code.ts @@ -1,6 +1,18 @@ export const arrayBufferCode = ` -if(typeof uni !== 'undefined' && uni.base64ToArrayBuffer){ - ArrayBuffer = uni.base64ToArrayBuffer('').constructor +if (typeof uni !== 'undefined' && uni && uni.requireGlobal) { + const global = uni.requireGlobal() + ArrayBuffer = global.ArrayBuffer + Int8Array = global.Int8Array + Uint8Array = global.Uint8Array + Uint8ClampedArray = global.Uint8ClampedArray + Int16Array = global.Int16Array + Uint16Array = global.Uint16Array + Int32Array = global.Int32Array + Uint32Array = global.Uint32Array + Float32Array = global.Float32Array + Float64Array = global.Float64Array + BigInt64Array = global.BigInt64Array + BigUint64Array = global.BigUint64Array }; ` export const polyfillCode = ` diff --git a/packages/uni-mp-core/src/api/promise.ts b/packages/uni-mp-core/src/api/promise.ts index 0f23d48be..135ecc7c1 100644 --- a/packages/uni-mp-core/src/api/promise.ts +++ b/packages/uni-mp-core/src/api/promise.ts @@ -7,7 +7,7 @@ import { } from '@dcloudio/uni-api/src/helpers/interceptor' const SYNC_API_RE = - /^\$|getLocale|setLocale|sendNativeEvent|restoreGlobal|getCurrentSubNVue|getMenuButtonBoundingClientRect|^report|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/ + /^\$|getLocale|setLocale|sendNativeEvent|restoreGlobal|requireGlobal|getCurrentSubNVue|getMenuButtonBoundingClientRect|^report|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/ const CONTEXT_API_RE = /^create|Manager$/ -- GitLab