From 9c600db5c32018848ca68a4c43a358d550760c9c Mon Sep 17 00:00:00 2001 From: lihui868 Date: Sat, 23 Mar 2024 16:05:44 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=BD=93window.loadContent=E6=9C=AA?= =?UTF-8?q?=E7=BB=93=E6=9D=9F=E6=97=B6=EF=BC=8C=E8=8E=B7=E5=8F=96=E4=B8=8D?= =?UTF-8?q?=E5=88=B0UIContent=E5=AF=BC=E8=87=B4=E9=BB=91=E5=B1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: lihui868 --- .../ets/embedding/ohos/FlutterAbility.ets | 5 ++--- .../ohos/FlutterAbilityAndEntryDelegate.ets | 18 ---------------- .../main/ets/embedding/ohos/FlutterEntry.ets | 1 + .../flutter/src/main/ets/view/FlutterView.ets | 21 +++++++++++++++++++ 4 files changed, 24 insertions(+), 21 deletions(-) diff --git a/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/embedding/ohos/FlutterAbility.ets b/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/embedding/ohos/FlutterAbility.ets index 0c44e57433..948aa6b54c 100644 --- a/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/embedding/ohos/FlutterAbility.ets +++ b/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/embedding/ohos/FlutterAbility.ets @@ -162,6 +162,7 @@ export class FlutterAbility extends UIAbility implements Host { Log.e(TAG, 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); return; } + this.flutterView?.onWindowCreated(); Log.i(TAG, 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? ''); }); @@ -226,9 +227,7 @@ export class FlutterAbility extends UIAbility implements Host { } configureFlutterEngine(flutterEngine: FlutterEngine) { - let _UIContext = this.mainWindow?.getUIContext(); - this.delegate?.setUIContext(_UIContext); - this.delegate?.sendSettings(); + } cleanUpFlutterEngine(flutterEngine: FlutterEngine) { diff --git a/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/embedding/ohos/FlutterAbilityAndEntryDelegate.ets b/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/embedding/ohos/FlutterAbilityAndEntryDelegate.ets index c9418c77ed..242f766b2a 100644 --- a/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/embedding/ohos/FlutterAbilityAndEntryDelegate.ets +++ b/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/embedding/ohos/FlutterAbilityAndEntryDelegate.ets @@ -32,11 +32,9 @@ import { FlutterPlugin } from '../engine/plugins/FlutterPlugin'; import FlutterEngineCache from '../engine/FlutterEngineCache'; import FlutterEngineGroupCache from '../engine/FlutterEngineGroupCache'; import FlutterEngineGroup, { Options } from '../engine/FlutterEngineGroup'; -import Settings from './Settings'; import FlutterNapi from '../engine/FlutterNapi'; import List from '@ohos.util.List'; import GeneratedPluginRegister from '../engine/plugins/util/GeneratedPluginRegister'; -import { UIContext } from '@ohos.arkui.UIContext'; import { FlutterView } from '../../view/FlutterView'; import FlutterManager from './FlutterManager'; import router from '@ohos.router'; @@ -56,11 +54,9 @@ class FlutterAbilityAndEntryDelegate implements ExclusiveAppComponent flutterEngine?: FlutterEngine | null; platformPlugin?: PlatformPlugin; private context?: common.Context; - private uiContext?: UIContext | undefined; private textInputPlugin?: TextInputPlugin; private isFlutterEngineFromHostOrCache: boolean = false; private engineGroup?: FlutterEngineGroup; - private settings?: Settings; private isHost:boolean = false; private flutterView?: FlutterView @@ -99,7 +95,6 @@ class FlutterAbilityAndEntryDelegate implements ExclusiveAppComponent } if (this.flutterEngine) { this.textInputPlugin = new TextInputPlugin(this.flutterEngine.getTextInputChannel()!); - this.settings = new Settings(this.flutterEngine.getSettingsChannel()!); this.flutterEngine.getSystemLanguages(); } if (this.flutterEngine && this.flutterView) { @@ -471,19 +466,6 @@ class FlutterAbilityAndEntryDelegate implements ExclusiveAppComponent this.flutterEngine?.getPlugins()?.remove(plugin.getUniqueClassName()) } - sendSettings(): void { - if (this.uiContext != undefined) { - this.settings?.sendSettings(this.uiContext.getMediaQuery()); - } else { - Log.e(TAG, "UIContext is null, cannot send Settings!"); - } - - } - - setUIContext(uiContext: UIContext | undefined): void { - this.uiContext = uiContext; - } - isFlutterEngineFromHost(): boolean { return this.isFlutterEngineFromHostOrCache; } diff --git a/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/embedding/ohos/FlutterEntry.ets b/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/embedding/ohos/FlutterEntry.ets index f89a6f2fc1..3eaa26b5e6 100644 --- a/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/embedding/ohos/FlutterEntry.ets +++ b/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/embedding/ohos/FlutterEntry.ets @@ -56,6 +56,7 @@ export default class FlutterEntry implements Host { if (this.hasInit == false) { this.delegate = new FlutterAbilityAndEntryDelegate(this); this.flutterView = this.delegate?.createView(this.context); + this.flutterView?.onWindowCreated(); await this?.delegate?.onAttach(this.context); Log.i(TAG, 'onAttach end'); this?.delegate?.platformPlugin?.setUIAbilityContext(this.uiAbility!!.context); diff --git a/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/view/FlutterView.ets b/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/view/FlutterView.ets index 053dafe290..e19ba2393c 100644 --- a/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/view/FlutterView.ets +++ b/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/view/FlutterView.ets @@ -21,6 +21,7 @@ import window from '@ohos.window'; import KeyboardManager from '../embedding/ohos/KeyboardManager'; import MouseCursorPlugin from '../plugin/mouse/MouseCursorPlugin'; import Any from '../plugin/common/Any'; +import Settings from '../embedding/ohos/Settings'; const TAG = "FlutterView"; @@ -53,6 +54,8 @@ export class FlutterView { private keyboardManager: KeyboardManager | null = null; private mainWindow: window.Window private mouseCursorPlugin?: MouseCursorPlugin; + private uiContext?: UIContext | undefined; + private settings?: Settings; constructor(viewId: string, context: Context) { this.id = viewId @@ -121,6 +124,8 @@ export class FlutterView { this.updateViewportMetrics() let windowId = this.mainWindow?.getWindowProperties()?.id this.mouseCursorPlugin = new MouseCursorPlugin(windowId, this.flutterEngine?.getMouseCursorChannel()!); + this.settings = new Settings(this.flutterEngine.getSettingsChannel()!); + this.sendSettings(); } detachFromFlutterEngine(): void { @@ -137,6 +142,22 @@ export class FlutterView { this.keyboardManager = null; } + onWindowCreated() { + Log.d(TAG, "received onwindowCreated."); + let _UIContext = this.mainWindow?.getUIContext(); + this.uiContext = _UIContext; + this.sendSettings(); + Log.d(TAG, "uiContext init and sendSettings finished."); + } + + sendSettings(): void { + if (this.uiContext != undefined && this.isAttachedToFlutterEngine()) { + this.settings?.sendSettings(this.uiContext.getMediaQuery()); + } else { + Log.e(TAG, "UIContext is null, cannot send Settings!"); + } + } + onSurfaceCreated() { this.isSurfaceAvailableForRendering = true; if (this.isAttachedToFlutterEngine()) { -- Gitee From 3d9a251f9fc4356833f5a76240b823ea043fff8d Mon Sep 17 00:00:00 2001 From: lihui868 Date: Mon, 25 Mar 2024 11:48:37 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=BD=93window.loadContent=E6=9C=AA?= =?UTF-8?q?=E7=BB=93=E6=9D=9F=E6=97=B6=EF=BC=8C=E8=8E=B7=E5=8F=96=E4=B8=8D?= =?UTF-8?q?=E5=88=B0UIContent=E5=AF=BC=E8=87=B4=E9=BB=91=E5=B1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: lihui868 --- .../embedding/ohos/FlutterAbilityAndEntryDelegate.ets | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/embedding/ohos/FlutterAbilityAndEntryDelegate.ets b/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/embedding/ohos/FlutterAbilityAndEntryDelegate.ets index 242f766b2a..733a4f24d4 100644 --- a/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/embedding/ohos/FlutterAbilityAndEntryDelegate.ets +++ b/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/embedding/ohos/FlutterAbilityAndEntryDelegate.ets @@ -33,8 +33,6 @@ import FlutterEngineCache from '../engine/FlutterEngineCache'; import FlutterEngineGroupCache from '../engine/FlutterEngineGroupCache'; import FlutterEngineGroup, { Options } from '../engine/FlutterEngineGroup'; import FlutterNapi from '../engine/FlutterNapi'; -import List from '@ohos.util.List'; -import GeneratedPluginRegister from '../engine/plugins/util/GeneratedPluginRegister'; import { FlutterView } from '../../view/FlutterView'; import FlutterManager from './FlutterManager'; import router from '@ohos.router'; @@ -89,10 +87,6 @@ class FlutterAbilityAndEntryDelegate implements ExclusiveAppComponent this.platformPlugin = this.host?.providePlatformPlugin(this.flutterEngine!) //configureFlutterEngine this.isAttached = true; - const plugins = this.host?.getPlugins() - if (plugins) { - GeneratedPluginRegister.registerGeneratedPlugins(this.flutterEngine!, plugins); - } if (this.flutterEngine) { this.textInputPlugin = new TextInputPlugin(this.flutterEngine.getTextInputChannel()!); this.flutterEngine.getSystemLanguages(); @@ -242,7 +236,6 @@ class FlutterAbilityAndEntryDelegate implements ExclusiveAppComponent } if (this.context) { this.flutterEngine = await group?.createAndRunEngineByOptions(this.addEntrypointOptions(new Options(this.context) - .setAutomaticallyRegisterPlugins(false) .setWaitForRestorationData(this.host?.shouldRestoreAndSaveState() || false))); } this.isFlutterEngineFromHostOrCache = false; @@ -524,9 +517,6 @@ interface Host extends FlutterEngineProvider, FlutterEngineConfigurator, Platfor shouldRestoreAndSaveState(): boolean; - /** Return the plugins */ - getPlugins(): List; - /* Return the ExclusiveAppComponent */ getExclusiveAppComponent(): ExclusiveAppComponent | null -- Gitee