HarmonyOS 鸿蒙Next应用“丁斗口算”开发记录(4)

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

HarmonyOS 鸿蒙Next应用“丁斗口算”开发记录(4) 页面路由

页面路由指在应用程序中实现不同页面之间的跳转和数据传递。Router模块通过不同的url地址,可以方便地进行页面路由,轻松地访问不同的页面。

页面跳转

页面跳转是开发过程中的一个重要组成部分。在使用应用程序时,通常需要在不同的页面之间跳转,有时还需要将数据从一个页面传递到另一个页面。

以本APP为例,需要从首页跳转到题目页面。在首页中点击不同的菜单时,跳转到同一个题目页面,同时传递用户点击的菜单信息。在题目页面获取到信息后,生成不同类型的题目。

题目页

Router模块提供了两种跳转模式,分别是router.pushUrlrouter.replaceUrl。这两种模式决定了目标页面是否会替换当前页。

router.pushUrl:目标页面不会替换当前页,而是压入页面栈。这样可以保留当前页的状态,并且可以通过返回键或者调用router.back方法返回到当前页。

router.replaceUrl:目标页面会替换当前页,并销毁当前页。这样可以释放当前页的资源,并且无法返回到当前页。

在使用Router相关功能之前,需要在代码中先导入Router模块。

import router from '@ohos.router';

场景三:有一个主页(Index)和一个题目页(PageEquation),希望从主页点击题目类型菜单后,跳转到题目页。同时,需要保证每次只有一个题目页存在于页面栈中,在返回时直接回到主页。这种场景下,可以使用pushUrl方法,并且使用Single实例模式。

let param: Param_Router = {
    Index: index,
    Orient : this.Orient_V
}

router.pushUrl({
    url: 'pages/PageEquation',
    params: param
}, router.RouterMode.Single, (err) => {
    if (err) {
        console.error(`Invoke pushUrl failed, code is ${err.code}, message is ${err.message}`);
        return;
    }
    console.info('Invoke pushUrl succeeded.');
});

其中,param是传递的参数,需要自定义一个类,用于传送多个参数。

export class Param_Router {
    public Index : number = -1;
    public Orient : boolean = true;
}

下一个问题是在题目页中接收参数,可以写在aboutToAppear函数中。

aboutToAppear(): void { 
    const param : Param_Router = router.getParams() as Param_Router; // 获取传递过来的参数对象
    if(param==undefined){
        this.index = 0;
    }else{
        this.index = param.Index;
        this.Orient_V = param.Orient;
    }
    this.title = EquationTypeList[this.index].TypeTitle; // 显示出题目的名称
    this.name = EquationTypeList[this.index].TypeName; // 显示出题目的类型
}

这样,就将用户在首页点击的题目类型菜单信息传递到了题目页,APP也跳转到了题目页。

从题目页的返回,用户需要返回首页时,点击相应的图标,通过router模块返回首页,代码如下

Image($r('app.media.ic_public_arrow_left'))
    .width(20)
    .height(20)
    .onClick(() => {
        router.back(); // 点击图标,返回首页
    })

至此,实现了APP的页面路由。


更多关于HarmonyOS 鸿蒙Next应用“丁斗口算”开发记录(4)的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

大佬大佬,受教了

更多关于HarmonyOS 鸿蒙Next应用“丁斗口算”开发记录(4)的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对帖子标题“HarmonyOS 鸿蒙Next应用‘丁斗口算’开发记录(4)”所隐含的鸿蒙相关问题,以下是一个简洁且专业的回答:

在HarmonyOS鸿蒙系统中开发“丁斗口算”应用时,可能会遇到多个技术层面的挑战,包括但不限于界面设计、性能优化、数据处理以及与鸿蒙系统特性的深度融合。

首先,界面设计上需充分利用鸿蒙系统的分布式能力,实现多设备间的无缝协同。这要求开发者熟悉鸿蒙的UI框架和组件,确保应用在不同设备上都能提供一致且流畅的用户体验。

其次,性能优化是关键。鸿蒙系统强调高效和流畅,因此开发者需对应用的内存管理、CPU占用等进行细致优化,确保应用在各种场景下都能稳定运行。

此外,数据处理方面需考虑鸿蒙系统的数据安全和隐私保护机制。开发者需遵循鸿蒙的数据处理规范,确保应用的数据安全合规。

最后,深度融合鸿蒙系统特性是提升应用竞争力的关键。例如,利用鸿蒙的超级终端功能,实现应用在不同设备间的快速切换和协同工作。

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

回到顶部