如何在Page中获取WindowStage实例

2024-12-18 15:56:34
223次阅读
0个评论

方式一:在onWindowStageCreate方法中获取


import { UIAbility } from '@kit.AbilityKit'; 
import { hilog } from '@kit.PerformanceAnalysisKit'; 
import { window } from '@kit.ArkUI'; 
 
export default class EntryAbility extends UIAbility { 
  // ... 
  onWindowStageCreate(windowStage: window.WindowStage): void { 
    // Main window is created, set main page for this ability 
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); 
 
    windowStage.loadContent('pages/Index', (err) => { 
      if (err.code) { 
        hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); 
        return; 
      } 
      hilog.info(0x0000, 'testTag', 'Succeeded in loading the content.'); 
    }); 
    console.info('windowStage+++', JSON.stringify(windowStage)) 
    AppStorage.setAndLink('windowStage', windowStage) 
  } 
 
  // ... 
}

方式二:UIAbilityContext当前提供了相关接口来获取WindowStage实例

// Index.ets 
import common from '@ohos.app.ability.common'; 
 
@Entry 
@Component 
struct Index { 
  @State showAbility: string = 'get windowStage' 
 
  build() { 
    Row() { 
      Column() { 
        Text(this.showAbility) 
          .fontSize(30) 
          .fontWeight(FontWeight.Bold) 
          .onClick(() => { 
            let context = getContext(this) as common.UIAbilityContext; 
            console.info('获取到的WindowStage实例:',JSON.stringify(context.windowStage)) 
          }); 
      } 
      .width('100%') 
    } 
    .height('100%') 
  } 
}
收藏00

登录 后评论。没有帐号? 注册 一个。