HarmonyOS 鸿蒙Next启动其他应用的UIAbility并获取返回结果,报错

发布于 1周前 作者 ionicwang 来自 鸿蒙OS

HarmonyOS 鸿蒙Next启动其他应用的UIAbility并获取返回结果,报错

Button(‘关闭自己并返回结果’) .onClick(() => { let context = getContext(this) as common.UIAbilityContext let abilityResult: common.AbilityResult = { resultCode: this.APP_RESULT_CODE, want: { bundleName: ‘com.example.uiabilitydemo’, abilityName: ‘EntryAbility’, moduleName: ‘entry’, parameters: { rsinfo: ‘跨应用返回的结果’ } } } context.terminateSelfWithResult(abilityResult, (err: BusinessError) => { if (err) { // 处理业务逻辑错误 console.error(返回值出错了!); console.error(JSON.stringify(err)); return; } }) })

cke_627.png

这个是怎么回事,用的是模拟器


更多关于HarmonyOS 鸿蒙Next启动其他应用的UIAbility并获取返回结果,报错的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

返回code:0,应该是成功了,你这边写法有点问题,可以参考一下下面的demo

hljs this.context.terminateSelfWithResult(abilityResult, (err: BusinessError) => { if (err.code) { // 处理业务逻辑错误 console.error(terminateSelfWithResult failed, code is ${err.code}, message is ${err.message}); return; } // 执行正常业务 console.info(‘terminateSelfWithResult succeed’); });


这样,err.code是0的时候,就不会走到第一个if判断里面

更多关于HarmonyOS 鸿蒙Next启动其他应用的UIAbility并获取返回结果,报错的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


跨应用返回的结果' 是可以返回了

在HarmonyOS(鸿蒙)系统中,启动其他应用的UIAbility并获取返回结果通常涉及到Ability间的通信。如果遇到报错,可能是由于以下几个常见原因:

  1. 权限问题:确保你的应用具有启动目标UIAbility所需的权限。检查config.json文件中是否已声明相关权限。

  2. Intent配置错误:检查启动UIAbility时使用的Intent是否正确配置,包括Action、ElementName(包括包名和类名)等关键信息。

  3. 目标Ability不存在:确认目标UIAbility的包名和类名是否准确无误,且目标应用已正确安装。

  4. 返回结果处理不当:确保在启动Ability时正确设置了请求码,并在onAbilityResult中正确处理返回结果。注意,鸿蒙系统中的onAbilityResult回调与Android中的onActivityResult类似,但具体实现可能有差异。

  5. 版本兼容性问题:检查你的应用和目标应用是否都兼容当前运行的鸿蒙系统版本。

针对这些可能的原因,逐一排查并修正。如果问题依旧没法解决,请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。客服将为你提供更专业的帮助。

回到顶部