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

简介: 本文介绍了鸿蒙API 16升级后,如何通过UIContext获取上下文及替代已废弃API的方法,包括组件、类和Ability中的使用示例,并提供了promptAction、router等常用API的迁移方案,帮助开发者顺利适配新版系统。


使用最新API获取UIContext,上下文
鸿蒙发展很快,转眼API16,modelVersion5.1.1就已经到来了。

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

getContext(this)(已经被废弃了)
我们需要使用UIContext获取UIContext实例进而得到上下文。

示例代码:

1.在组件中:

const uiContext = this.getUIContext()?.getHostContext()//得到上下文Context
this.getUIContext() //得到UIContext实例
2.在类Class中(或者一些工具类.ets文件中):

const context = AppStorageV2.connect(UIContext, 'uiContext', () => new UIContext())?.getHostContext()
3.在ability中:位置(在EntryAbility下的onWindowStageCreate里面写代码)

windowStage.getMainWindow().then((win) => {
const uiContext = win.getUIContext()//得到UIContext实例
const Context=uiContext.getHostContext()//得到上下文
}
注意:使用开发者文档的实例代码

windowStage.getMainWindowSync().getUIContext()
将会报错,报错如下

Error message:This window state is abnormal.

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

2.其他API迁移示例

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

//旧版API
promptAction.showToast({ message: '被触发' })
//迁移最新版API示例
promptAction.openToast({ message: '被触发了' })

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

//旧版API(已被废弃)
router.replaceUrl({ url: 'pages/Index' })
//迁移为最新版API示例
this.getUIContext().getRouter().replaceUrl({ url: 'pages/Index' })

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

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

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

//旧版API(已经被废弃)
px2vp()
//新版API迁移示例
this.getUIContext().px2vp()

目录
打赏
0
0
0
0
1
分享
相关文章
从 Apifox 到 Apipost:企业API开发工具迁移背后的深度剖析
近期调研发现,超65%的中大型开发团队正从Apifox迁移至Apipost。本文深入剖析背后原因,揭示Apipost在协作模式、数据管理、AI能力等方面的显著优势,展现其如何通过智能协同与全流程优化,重塑API开发效率与质量,引领行业工具变革趋势。
38 0
洋码头商品 API 示例指南(Python 实现)
洋码头是国内知名跨境电商平台,提供商品搜索、详情、分类等API接口。本文详解了使用Python调用这些API的流程与代码示例,涵盖签名生成、请求处理及常见问题解决方案,适用于构建选品工具、价格监控等跨境电商应用。
速卖通商品 API,开发者示例
速卖通商品API是速卖通开放平台为开发者提供的接口,支持获取商品详情、订单管理等功能。具备多语言、多货币支持,适用于全球电商场景。可应用于商品分析、价格监控、竞品对比和库存管理等业务。文档提供Python调用示例,便于快速集成使用。
|
24天前
|
VIN车辆识别码查询车五项 API 实践指南:让每一俩车有迹可循(Python代码示例)
VIN(车辆识别代码)是全球唯一的17位汽车标识码,可快速获取车架号、发动机号、品牌型号等核心信息。在二手车交易、保险理赔、维修保养等场景中,准确解析VIN有助于提升效率与风控能力。本文介绍VIN码结构、适用场景,并提供Python调用示例及优化建议,助力企业实现车辆信息自动化核验。
101 1
淘宝商品评论API接口,json数据示例参考
淘宝开放平台提供了多种API接口来获取商品评论数据,其中taobao.item.reviews.get是一个常用的接口,用于获取指定商品的评论信息。以下是关于该接口的详细介绍和使用方法:
淘宝关键词搜索商品列表API接入指南(含Python示例)
淘宝关键词搜索商品列表API是淘宝开放平台的核心接口,支持通过关键词检索商品,适用于比价、选品、市场分析等场景。接口提供丰富的筛选与排序功能,返回结构化数据,含商品ID、标题、价格、销量等信息。开发者可使用Python调用,需注意频率限制与错误处理,建议先在沙箱环境测试。
一号店商品 API 示例指南(Python 实现)
本教程介绍如何使用 Python 调用一号店商品 API,涵盖商品搜索、详情、分类等接口的调用方法。内容包括注册认证、签名生成、代码实现及常见问题解决方案,并提供完整示例代码,帮助开发者快速接入一号店开放平台,构建电商工具与数据分析应用。
唯品会商品API,开发者示例
唯品会商品API支持获取商品详情、价格及库存信息,适用于开发者集成商品数据。通过如`vip.item_get`等接口,可使用Python等语言调用,实现商品信息查询与列表筛选。实际使用需申请官方授权或通过第三方平台接入,并遵守相关调用规则。
|
24天前
|
10多万语录随机一言API接口详解及调用示例
随机一言API可输出心灵鸡汤、至理名言等内容,适用于评论系统、签名生成等场景。完全免费,支持GET/POST请求。需注册获取专属ID和KEY,返回JSON格式数据,并提供PHP、Python调用示例。注意密钥安全与频率限制,内容版权归接口盒子所有。应用于每日推送、心情日记等多种场景。
淘宝关键词搜索 API 接口详解与示例
淘宝关键词搜索API(taobao.items.search)助力开发者高效获取商品数据,支持分页、筛选与排序。本文详解接口调用流程、签名机制及Python实现,涵盖权限申请、代码示例与常见问题解决方案,助你快速构建电商应用。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问