首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >鸿蒙NEXT-API19获取上下文,在class中和ability中获取上下文,API迁移示例-解决无法在EntryAbility中无法使用最新版API获取上下

鸿蒙NEXT-API19获取上下文,在class中和ability中获取上下文,API迁移示例-解决无法在EntryAbility中无法使用最新版API获取上下

原创
作者头像
用户11718959
发布2025-06-28 20:42:59
发布2025-06-28 20:42:59
25700
代码可运行
举报
运行总次数:0
代码可运行

使用最新API获取UIContext,上下文

鸿蒙发展很快,转眼API16,modelVersion5.1.1就已经到来了。

很多API在18被废弃了,接下来我们看看有哪些

代码语言:javascript
代码运行次数:0
运行
复制
getContext(this)(已经被废弃了)

我们需要使用UIContext获取UIContext实例进而得到上下文。

示例代码:

1.在组件中:

代码语言:javascript
代码运行次数:0
运行
复制
const uiContext = this.getUIContext()?.getHostContext()//得到上下文Context
this.getUIContext() //得到UIContext实例

2.在类Class中(或者一些工具类.ets文件中):

代码语言:javascript
代码运行次数:0
运行
复制
const context = AppStorageV2.connect(UIContext, 'uiContext', () => new UIContext())?.getHostContext()

3.在ability中:位置(在EntryAbility下的onWindowStageCreate里面写代码)

代码语言:javascript
代码运行次数:0
运行
复制
windowStage.getMainWindow().then((win) => {
      const uiContext = win.getUIContext()//得到UIContext实例
      const Context=uiContext.getHostContext()//得到上下文
  }

注意:使用开发者文档的实例代码

代码语言:javascript
代码运行次数:0
运行
复制
windowStage.getMainWindowSync().getUIContext()

将会报错,报错如下

Error message:This window state is abnormal.

请使用上面作者使用的方法,即可(避免报错无法运行程序)

2.其他API迁移示例

1. promptAction.showToast(),API在最新版中已经废弃了,使用下面示例API即可

代码语言:javascript
代码运行次数:0
运行
复制
//旧版API
promptAction.showToast({ message: '被触发' })
//迁移最新版API示例
promptAction.openToast({ message: '被触发了' })

2. router.replaceUrl(),API在最新版中已经废弃了,使用下面示例API即可

代码语言:javascript
代码运行次数:0
运行
复制
//旧版API(已被废弃)
router.replaceUrl({ url: 'pages/Index' })
//迁移为最新版API示例
this.getUIContext().getRouter().replaceUrl({ url: 'pages/Index' })

3. promptAction.showDialog(),API在最新版中已经废弃了,使用下面示例API即可

代码语言:javascript
代码运行次数:0
运行
复制
//旧版API(已经被废弃)
await promptAction.showDialog({
          message: '请授予应用基础权限,否则应用可能无法正常启动',
          buttons: [{
            text: '确定',
            color: 'blue'
          }]
        })
//迁移最新版API示例
await AppStorageV2.connect(UIContext, 'uiContext', () => new UIContext())?.getPromptAction().showDialog({
          message: '请授予应用基础权限,否则应用可能无法正常启动',
          buttons: [{
            text: '确定',
            color: 'blue'
          }]
        })

4. px2vp的API已经在最新版中被废弃了,迁移为uiContext.px2vp最新API

代码语言:javascript
代码运行次数:0
运行
复制
//旧版API(已经被废弃)
px2vp()
//新版API迁移示例
this.getUIContext().px2vp()

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用最新API获取UIContext,上下文
  • 2.其他API迁移示例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档