HarmonyOS 鸿蒙Next api9升级到api12后route.pushUrl无法跳转

发布于 1周前 作者 bupafengyu 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next api9升级到api12后route.pushUrl无法跳转

代码如下:

SearchComponent({
defaultSearchTextStr: this.defaultSearchTxt,
onClickAction: () => {
showToast(“search page”)
router.pushUrl({
url: ‘pages/SearchPage’//RouterConstants.MALL_SEARCH_PAGE,

      }, router.RouterMode.Standard)
    }
  })</code> </pre>  <p>原来是api9开发的,是正常能跳转的,最近升级到api12后,发现不能正常跳转到目标页了,点击后toast能显示,就是不能跳转,查了指南,跟api9也没有什么区别,请问是什么问题</p></div></div>
8 回复

我这边也是api9升到api11后来又升到api12的,没出现跳转不了的问题。

建议尝试

1、扩展名检查 ,api 9新建的项目EntryAbility是ts的,而API 12 新建的项目EntryAbility是ets的,但你升级上去的时候不会帮你修改扩展名,需要手动修改。

src/main/ets/entryability/EntryAbility.ets

2、检查main_pages.json,看看是否有添加页面白名单

src/main/resources/base/profile/main_pages.json

改了扩展名还是不行,白名单一直有加的,还会是什么问题影响?

新建一个page页面,尝试跳转到那个页面,

Invoke pushUrl failed, code is 100002, message is Uri error. The uri of router is not exist 居然是报了uri不存在

问题已解决,采用单hap多hsp方式,跳转问题已经没问题了

楼主您好,该问题需要demo代码进行分析,建议通过在线提单提交问题。

支持 - 在线提单 - 华为开发者联盟 (huawei.com)

你好,我补充一下,我们项目是通过多模块组织的 home模块(entry) mall(feature) study(feature) 。。。 然后home模块的主页面主要是一个tabs组件 其中一个tabcontent内容是引用了mall模块的一个页面,大概这样子: //import MallPage from ‘…/…/…/…/…/mall/src/main/ets/view/MallPage’ TabContent() { MallPage(); } 然后在mallPage页面就出现了我提到的问题,不能通过到pushUrl方式跳转目标页(目标页为mall模块的一个搜索页面),看起来像是找不到在mall模块下注册的路由 我试了,如果只运行mall模块的话(只打包mall),发现是能正常跳转的

在HarmonyOS鸿蒙系统中,从API 9升级到API 12后,如果route.pushUrl方法无法跳转,可能是由于API变更或行为调整导致的。在鸿蒙系统的不同版本中,API的行为和可用性可能会有所不同。

首先,确保你的代码已经适配了API 12的变更。这包括检查route.pushUrl方法在新API版本中的使用方式和限制。在鸿蒙系统的开发者文档中,通常会有关于API变更的详细说明。

其次,检查你的路由配置是否正确。在鸿蒙系统中,路由配置是实现页面跳转的关键。确保你的路由配置已经正确更新,并且与新API版本兼容。

此外,还需要注意鸿蒙系统对权限和安全性的要求。如果route.pushUrl方法涉及敏感操作或需要特定权限,确保你的应用已经正确声明并获得了这些权限。

如果以上步骤都无法解决问题,可能是由于鸿蒙系统的内部问题或特定设备的兼容性问题。在这种情况下,建议联系鸿蒙系统的官方支持团队或访问官网客服获取帮助。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部