OpenHarmony开发者论坛

标题: 通过 应用上下文Context 获取 应用bundleName [打印本页]

作者: 离北况归    时间: 2023-10-17 15:23
标题: 通过 应用上下文Context 获取 应用bundleName
[md]本文介绍了通过 应用上下文Context  来获取 applicationInfo(当前应用信息)中的 bundleName信息。
首先介绍什么是`应用上下文Context`,然后介绍 怎么通过 `通过 应用上下文Context 获取 应用bundleName`。

- 基于OpenHarmony 3.2Release
- API9

---

## 1.什么是 应用上下文Context

- Context是应用中对象的上下文,其提供了应用的一些基础信息,**例如resourceManager(资源管理)、applicationInfo(当前应用信息)、dir(应用文件路径)、area(文件分区)等**,以及应用的一些基本方法。
  - 详细请参考 https://gitee.com/openharmony/do ... on-context-stage.md
  - https://gitee.com/openharmony/do ... p-ability-common.md

## 2.通过 应用上下文Context 获取 应用bundleName

- 1.在 程序入口 EntryAbility.ts 中 `UIAbility生命周期` 的`onWindowStageCreate()回调`中 添加

```JS
onWindowStageCreate(windowStage: window.WindowStage) {
...

    globalThis.abilityContext = this.context
    //用全局对象获取context类的接口
    globalThis.context = this.context
...  
  }
```

![image.png](https://dl-harmonyos.51cto.com/i ... rocess=image/resize,w_658,h_518)

2.Index.ets中使用 `await globalThis.context.abilityInfo.bundleName` 获取

```
@Entry
@Component
struct Index {
  @State bundleName: string = ''

  public async get_bundleName() {

    this.bundleName = await globalThis.context.abilityInfo.bundleName

  }

  //aboutToAppear函数在创建自定义组件的新实例后,在执行其build()函数之前执行。允许在aboutToAppear函数中改变状态变量,更改将在后续执行build()函数中生效。
  aboutToAppear() {
   
    this.get_bundleName();

  }

  build() {
    Row() {
      Column() {

        Blank()

        Text(this.bundleName)
          .fontSize(25)
          .fontWeight(FontWeight.Bold)

        Blank()

      }
      .width('100%')
      .height('100%')

    }
    .height('100%')
  }
}
```

## 3.参考资料

- UIAbility
  
  - https://gitee.com/openharmony/do ... bility-uiAbility.md
  - 实际样例 :[UIAbility和自定义组件生命周期(ArkTS)](https://gitee.com/openharmony/co ... /UIAbilityLifeCycle)
- Context
  
  - https://gitee.com/openharmony/do ... on-context-stage.md



[/md]




欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5