HarmonyOS鸿蒙Next中@Builder如何获取UIAbilityContext
HarmonyOS鸿蒙Next中@Builder如何获取UIAbilityContext 求助,有通过Builder获取UIAbilityContext的方法嘛
2 回复
方式一:builder参数传入
class Params {
uicontext?: UIContext
constructor(uicontext?: UIContext) {
this.uicontext = uicontext;
}
}
@Builder
function buildTest(params: Params) {
Button('btn')
.onClick(() => {
if (params.uicontext) {
// 获取uiAbilityContext
let abilityContext = params.uicontext.getHostContext() as common.UIAbilityContext
}
})
}
方式二:在EntryAbility中获取Context后保存至AppStorage,然后在工具类中使用AppStorage获取。
参考链接
更多关于HarmonyOS鸿蒙Next中@Builder如何获取UIAbilityContext的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,@Builder
用于构建UI组件,但它本身不直接提供获取UIAbilityContext
的方法。要获取UIAbilityContext
,通常需要在UIAbility
或其生命周期方法中通过this.context
获取,然后将其传递给@Builder
。例如:
class MyAbility extends UIAbility {
@Builder myBuilder() {
// 使用this.context获取UIAbilityContext
const context = this.context;
// 构建UI组件
Text('Hello, HarmonyOS').fontSize(20);
}
}
通过这种方式,@Builder
可以间接使用UIAbilityContext
。