diff --git a/shell/platform/ohos/flutter_embedding/flutter/src/main/cpp/types/libflutter/index.d.ets b/shell/platform/ohos/flutter_embedding/flutter/src/main/cpp/types/libflutter/index.d.ets index ce5ef18b90125bd4602d120b7c88b51d864600c3..bad570e8929450e0eba79a37c3a36ac023753d45 100644 --- a/shell/platform/ohos/flutter_embedding/flutter/src/main/cpp/types/libflutter/index.d.ets +++ b/shell/platform/ohos/flutter_embedding/flutter/src/main/cpp/types/libflutter/index.d.ets @@ -33,6 +33,8 @@ export const nativeUpdateRefreshRate: ( ate: number ) => void; +export const nativePrefetchDefaultFontManager: () => void; + /** * 初始化dart vm和flutter engine */ @@ -108,4 +110,4 @@ export const nativeUnregisterTexture: (nativeShellHolderId: number, textureId: n export const nativeRegisterPixelMap: (nativeShellHolderId: number, textureId: number, pixelMap: PixelMap) => void; -export const nativeRegisterTexture: (nativeShellHolderId: number, textureId: number) => number; \ No newline at end of file +export const nativeRegisterTexture: (nativeShellHolderId: number, textureId: number) => number; diff --git a/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/embedding/engine/FlutterNapi.ets b/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/embedding/engine/FlutterNapi.ets index 306cb13cd8033420f8b1bcaf1c93a7726b9e5374..ab969fb9e8ed5bd99685ebe90a803abb1c73886d 100644 --- a/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/embedding/engine/FlutterNapi.ets +++ b/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/embedding/engine/FlutterNapi.ets @@ -53,7 +53,6 @@ export default class FlutterNapi { localizationPlugin: LocalizationPlugin | null = null; isDisplayingFlutterUi: boolean = false; - /** * 更新刷新率 * @param rate @@ -76,6 +75,10 @@ export default class FlutterNapi { flutter.nativeInit(context, args, bundlePath, appStoragePath, engineCachesPath, initTimeMillis, deviceInfo.productModel); } + static prefetchDefaultFontManager(): void { + flutter.nativePrefetchDefaultFontManager(); + } + attachToNative(): void { this.nativeShellHolderId = flutter.nativeAttach(this); Log.w(TAG, "nativeShellHolderId=" + this.nativeShellHolderId); @@ -414,4 +417,4 @@ export interface AccessibilityDelegate { updateCustomAccessibilityActions(buffer: ByteBuffer, strings: string[]): void; updateSemantics(buffer: ByteBuffer, strings: string[], stringAttributeArgs: ByteBuffer[]): void; -} \ No newline at end of file +} diff --git a/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/embedding/engine/loader/FlutterLoader.ets b/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/embedding/engine/loader/FlutterLoader.ets index 96589b090c499fee11173c172e07e7d7db34a0ad..256f15ea9055ae5d87a4763d7e0cb95fd61612da 100644 --- a/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/embedding/engine/loader/FlutterLoader.ets +++ b/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/embedding/engine/loader/FlutterLoader.ets @@ -55,6 +55,12 @@ const TIMESTAMP_PREFIX = "res_timestamp-"; const OH_ICU_DATA_FILE_PATH = "/system/usr/ohos_icu/" +async function prefetchDefaultFontManager(): Promise { + await new Promise((resolve: Function) => { + FlutterNapi.prefetchDefaultFontManager() + }) +} + /** * 定位在hap包中的flutter资源,并且加载flutter native library. */ @@ -87,6 +93,7 @@ export default class FlutterLoader { this.initStartTimestampMillis = Date.now(); this.context = context; this.flutterApplicationInfo = ApplicationInfoLoader.load(context); + await prefetchDefaultFontManager(); if (this.flutterApplicationInfo!.isDebugMode) { await this.copyResource(context) } @@ -284,4 +291,4 @@ class InitResult { this.engineCachesPath = engineCachesPath; this.dataDirPath = dataDirPath; } -} \ No newline at end of file +}