HarmonyOS 如何动态获取当前页面

有一个网络请求的通用错误处理,任何接口请求都用可能触发某类型的业务错误,比如任何接口都有可能触发补充的安全验证流程、或者触发拉起用户的登录流程、或者触发一个统一的弹框给用户相应的提示。

在之前平台上我们可以方便的获取当前页面对象(UIVIewController对象)然后在当前的页面对象上做push到下一个页面、弹框提示等UI相关的操作,这些通用的处理都在我们的网络框架里做统一的处理。

但在HarmonyOS上网络请求的har如何实现基于当前页面的统一的UI相关的操作呢?麻烦给予一下指导。

HarmonyOS
2024-09-03 09:13:04
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

基于您提供的应用场景,目前除了通过调用处传入的方式获取到当前的页面context,还可以通过:

import { common } from '@kit.AbilityKit' 
 
export class Utils { 
  request() { 
    let tree = getInspectorTree() 
    let context = getContext(tree) as common.UIAbilityContext 
    context.startAbility({ 
      bundleName: 'xxx.xxx.xxx', 
      abilityName: 'xxxAbility' 
    }) 
    console.log("") 
  } 
}

目前在API 11之后,getContext支持不传入参数,开发者您可以直接调用来获取对应Context,样例代码如果下:

export class Utils { 
  request() { 
    let context = getContext() as common.UIAbilityContext 
    context.startAbility({ 
      bundleName: 'xxx.xxx.xxx', 
      abilityName: 'xxxAbility' 
    }) 
    console.log("") 
  } 
}
分享
微博
QQ
微信
回复
2024-09-03 15:34:49
相关问题
WebView支持获取当前页面url吗?
913浏览 • 1回复 待解决
Web中加载网页后获取当前页面和url
1081浏览 • 1回复 待解决
鸿蒙注销当前页面是哪个方法?
8467浏览 • 1回复 已解决
HarmonyOS如何获取手机当前音量
526浏览 • 1回复 待解决
HarmonyOS 获取当前时间
251浏览 • 1回复 待解决
如何通过JS动态引入页面?
2522浏览 • 1回复 待解决
HarmonyOS如何获取当前的网络状态
526浏览 • 1回复 待解决
如何获取当前设备的宽度?
599浏览 • 1回复 待解决
如何获取当前HAP的BundleName?
387浏览 • 1回复 待解决