Browse Source

refactor(context): 重构上下文管理并优化相关功能

-移除 AppAbility 中的冗余导入
- 调整 MiniAppManager 中的导入顺序
- 重构 GlobalContext 类,使用单个 UIContext 实例替代数组- 优化 SafeView 组件,移除不必要的生命周期方法
-改进 ToolsHelper.showMessage 方法,支持在不同上下文中显示提示信息- 调整 CertDown 页面的逻辑,优化证书下载流程
徐勤民 1 tháng trước cách đây
mục cha
commit
e8f0a74636

+ 15 - 13
src/main/ets/ContextConfig.ets

@@ -4,10 +4,11 @@
 
 import type common from '@ohos.app.ability.common';
 import { WindowHelper } from './utils/WindowHelper';
+import { BusinessError } from '@kit.BasicServicesKit';
 
 declare namespace globalThis {
   let _brushEngineContext: common.UIAbilityContext;
-  let _uiUIContext: UIContext[];
+  let _uiUIContext: UIContext;
 };
 
 export class GlobalContext {
@@ -17,22 +18,23 @@ export class GlobalContext {
 
   static setContext(context: common.UIAbilityContext): void {
     globalThis._brushEngineContext = context;
-    WindowHelper.windowClass = context.windowStage.getMainWindowSync()
-  }
-  static pushUIContext(context: UIContext): void {
-    if (!globalThis._uiUIContext) {
-      globalThis._uiUIContext = []
-    }
-    globalThis._uiUIContext.push(context);
-  }
-  static popUIContext(): void {
-    globalThis._uiUIContext.splice(globalThis._uiUIContext.length-1,1)
+
+    context.windowStage.getMainWindow((err: BusinessError, data) => {
+      let errCode: number = err.code;
+      if (errCode) {
+        console.error(`Failed to obtain the main window. Cause code: ${err.code}, message: ${err.message}`);
+        return;
+      }
+      WindowHelper.windowClass = data;
+      globalThis._uiUIContext = WindowHelper.windowClass.getUIContext();
+    });
   }
-  static getUiContext(): UIContext|undefined {
+
+  static getUiContext(): UIContext | undefined {
     if (globalThis._uiUIContext === undefined) {
       return undefined;
     }
-    return globalThis._uiUIContext[globalThis._uiUIContext.length-1];
+    return globalThis._uiUIContext;
   }
 }
 

+ 13 - 5
src/main/ets/utils/ToolsHelper.ets

@@ -261,11 +261,19 @@ export class ToolsHelper {
    * @param msg
    */
   static showMessage(msg: string) {
-    console.info(msg);
-    promptAction.showToast({
-      message: msg,
-      duration: 1500
-    });
+
+    const pa = GlobalContext.getUiContext()?.getPromptAction()
+    if (pa) {
+      pa.showToast({
+        message: msg,
+        duration: 1500
+      });
+    } else {
+      promptAction.showToast({
+        message: msg,
+        duration: 1500
+      });
+    }
   }
 
 

+ 0 - 7
src/main/ets/view/SafeView.ets

@@ -48,13 +48,6 @@ export struct SafeView {
   // 设置导航栏底下标题
   @Prop bottomTitleText: ResourceStr
 
-  aboutToAppear(): void {
-    GlobalContext.pushUIContext(this.getUIContext())
-  }
-  aboutToDisappear(): void {
-    GlobalContext.popUIContext()
-  }
-
   @Builder
   doNothingBuilder() {
   }