鸿蒙:获取UIContext实例的方法

前言:

我们在开发鸿蒙应用的过程中会经常用到UIContext实例,下面就给大家提供两种获取的方案,一种是组件内使用,一种是全局使用。

方案一【简单】:

在任意的有@component装饰器的组件中获取,代码如下:

复制代码
 this.getUIContext()

方案二【适合封装】:

在EntryAbility.ets中获取UIContext实例,AppStorage存储起来全局使用:

复制代码
 onWindowStageCreate(windowStage: window.WindowStage): void {

    hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onWindowStageCreate');
    windowStage.loadContent('pages/Index', (err) => {
      // 代码如下   ·······················  ··
      let context = windowStage.getMainWindowSync().getUIContext()
      AppStorage.setOrCreate('UIContext', context)
      // 代码如上   ·······················  ··
      if (err.code) {
        hilog.error(DOMAIN, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err));
        return;
      }
      hilog.info(DOMAIN, 'testTag', 'Succeeded in loading the content.');
    });

  }

然后在类或组件中使用它:

复制代码
  uiContext: UIContext = AppStorage.get('UIContext') as UIContext
相关推荐
巴德鸟43 分钟前
华为手机鸿蒙4回退到鸿蒙3到鸿蒙2再回退到EMUI11 最后关闭系统更新
华为·智能手机·harmonyos·降级·升级·回退·emui
一起养小猫1 小时前
Flutter for OpenHarmony 实战_魔方应用UI设计与交互优化
flutter·ui·交互·harmonyos
一只大侠的侠1 小时前
Flutter开源鸿蒙跨平台训练营 Day7Flutter+ArkTS双方案实现轮播图+搜索框+导航组件
flutter·开源·harmonyos
那就回到过去1 小时前
VRRP协议
网络·华为·智能路由器·ensp·vrrp协议·网络hcip
相思难忘成疾2 小时前
通向HCIP之路:第四步:边界网关路由协议—BGP(概念、配置、特点、常见问题及其解决方案)
网络·华为·hcip
一只大侠的侠2 小时前
Flutter开源鸿蒙跨平台训练营 Day9分类数据的获取与渲染实现
flutter·开源·harmonyos
一只大侠的侠2 小时前
Flutter开源鸿蒙跨平台训练营 Day 5Flutter开发鸿蒙电商应用
flutter·开源·harmonyos
不爱吃糖的程序媛3 小时前
Capacitor:跨平台Web原生应用开发利器,现已全面适配鸿蒙
前端·华为·harmonyos
一只大侠的侠4 小时前
Flutter开源鸿蒙跨平台训练营 Day6ArkUI框架实战
flutter·开源·harmonyos
一只大侠的侠4 小时前
Flutter开源鸿蒙跨平台训练营 Day 4实现流畅的下拉刷新与上拉加载效果
flutter·开源·harmonyos