怎么确定html子路由的位置,页面路由 router

本文详细介绍了快应用中的页面路由接口router的使用方法,包括push、replace、back、clear等方法,以及参数配置如uri、params、动画效果等。通过示例代码展示了如何进行页面跳转、传递数据、打开外部应用、设置动画效果等功能,是理解和实现代理应用页面导航的重要参考资料。
摘要由CSDN通过智能技术生成

页面路由 router

接口声明

无需声明

导入模块import router from '@system.router' 或 const router = require('@system.router')

接口定义

router.push(OBJECT)

跳转到应用内的某个页面

参数:参数类型必填说明uriString是要跳转到的 uri,可以是下面的格式:包含 schema 的完整 uri;目前支持的 schema 有 tel,sms 和 mailto,例如 tel:10086。

以‘/’开头的应用内页面的路径;例:/about。

以非‘/’开头的应用内页面的名称;例:About。

特殊的,如果 uri 的值是"/",则跳转到 path 为"/"的页,没有则跳转到首页支持包含 schema 的完整 uri。对于带有 schema 的 uri,处理流程如下:查找 app 下所有 page 的 filter 设置来选择合适的 page 处理请求(参见manifest 文件)

如果没有合适的 page 能够处理请求,会使用默认策略来处理请求。目前默认策略支持对 http、https、internal 这几种 schema 的处理

如果默认策略也不能处理请求,会尝试使用系统中的应用来处理请求

如果没有系统应用可以处理请求,会抛弃请求默认策略的处理逻辑:如果 schema 是 http/https,会用内置的 web 页面打开网页

如果 schema 是 internal(参见文件组织),会根据 uri 的文件扩展名来确定文件类型,再调用系统中的应用打开文件

如果 schema 是 hap(参见hap 链接),会跳转到 hap 链接所支持的类型

paramsObject否跳转时需要传递的数据,跳转到短信发送页面时,可以通过body(1040+)插入短信内容;跳转到快应用页面时,参数可以在页面中通过this.param1的方式使用,param1 为 json 中的参数名,param1 对应的值会统一转换为 String 类型

params 参数:参数类型必填说明body1040+String否跳转时短信发送页面时携带的短信内容。

___PARAMLAUNCH_FLAG\__1050+String否快应用启动参数,目前仅支持"clearTask",在启动目标页面时会清除除此页面外的其他页面。详见页面启动模式

___PARAMPAGE_ANIMATION\__1070+Object否页面跳转时动画类型

___PARAMPAGE_ANIMATION\__ 参数:页面动作动画类型必填说明openEnterString否打开进入当前页时当前页动画,可选值 slide, none,默认为 slide

closeEnterString否关闭返回当前页时当前页动画,可选值 slide, none,默认为 slide

openExitString否打开下一页,退出当前页时当前页动画,可选值 slide, none,默认为 slide

closeExitString否返回上一页,退出当前页时当前页动画,可选值 slide, none,默认为 slide

slide 模式在各动作下的动画变化详情如下:页面动作动画变化动画时长openEnterx from 100%~0300ms

closeEnterx from -25%~0, alpha 0.6~1.0300ms

openExitx from 0~-25%, alpha 1.0~0.6300ms

closeExitx from 0~100%300ms

示例:唤醒电话router.push({

uri: 'tel:10086'

})

发送短信router.push({

uri: 'sms:10086',

params: {

body: 'message'

}

})

应用内切换页面path 切换router.push({

uri: '/about',

params: {

testId: '1'

}

})

name 切换// open page by name

router.push({

uri: 'About',

params: {

testId: '1'

}

})

切换页面并清除其他页面 1050 +router.push({

uri: '/about',

params: {

___PARAM_LAUNCH_FLAG___: 'clearTask'

}

})

打开网页router.push({

uri: 'http://www.example.com'

})

打开原生应用router.push({

uri: 'internal://cache/example.apk'

})

打开另一个快应用router.push({

uri: 'hap://app/com.example.quickapp/page?key=value'

})

打开 wifi 设置页面 1040 +router.push({

uri: 'hap://settings/wlan_manager'

})

配置跳转动画模式 1070 +router.push({

uri: '/about',

params: {

___PARAM_PAGE_ANIMATION___: {

openEnter: `none`,

closeEnter: `slide`,

openExit: `slide`,

closeExit: `slide`

}

}

})

router.replace(OBJECT)

跳转到应用内的某个页面,当前页面无法返回

参数:参数类型必填说明uriString是要跳转到的 uri,可以是下面的格式:以"/"开头的应用内页面的路径;例:/about。

以非"/"开头的应用内页面的名称;例:About。

特殊的,如果 uri 的值是"/",则跳转到 path 为"/"的页,没有则跳转到首页

paramsObject否跳转时需要传递的数据,参数可以在页面中通过this.param1的方式使用,param1 为 json 中的参数名,param1 对应的值会统一转换为 String 类型

示例:router.replace({

uri: '/test',

params: {

testId: '1'

}

})

router.back(OBJECT)

返回指定页面

参数:参数类型必填说明path 1020+String否返回目标页面的路径,可以是以下几种取值:不传该参数,返回上一页面

以"/"开头的应用内已打开页面的路径;例:/about。

特殊的,如果 path 的值是"/",则跳转到页面名称为"/"的页,没有则跳转到首页注意点:path 需要是以"/"开头的当前应用已经打开的页面路径,否则均视为无效参数,返回上一页面

若根据 path 未匹配到已经打开的页面,返回上一页面

若根据 path 参数匹配到多个页面,返回至最后打开的页面

示例:// A页面, open page by name

router.push({

uri: 'B'

})

// B页面, open page by name

router.push({

uri: 'C'

})

// C页面, open page by name

router.push({

uri: 'D'

})

// D页面, open page by name

router.push({

uri: 'E'

})

// E页面不传入页面路径,返回至D页面

router.back()

// D页面不传入页面名称,返回至C页面

router.back()

// C页面传入页面路径,返回至A页面

router.back({

path: '/A'

})

router.clear()

清空所有历史页面记录,仅保留当前页面

参数:

示例:router.clear()

router.getLength()

获取当前页面栈的页面数量

返回值:类型说明Number页面数量

示例:var length = router.getLength()

console.log(`page's length = ${length}`)

router.getState()

获取当前页面状态

返回参数:参数名类型说明indexNumber当前页面在页面栈中的位置

nameString当前页面的名称

pathString当前页面的路径

示例:var page = router.getState()

console.log(`page index = ${page.index}`)

console.log(`page name = ${page.name}`)

console.log(`page path = ${page.path}`)

router.getPages()1070+

获取当前页面栈列表

返回值:类型说明Array页面栈列表。数组每一项都为 Object 类型。

数组每一项构成:字段类型说明nameString页面的名称

pathString页面的路径

示例:var stacks = router.getPages()

console.log('栈底页面名称为:', stacks[0].name) // 如 list、detail 等

console.log('栈底页面路径为:', stacks[0].path) // 如 /list、/detail、/home/preview

后台运行限制

禁止使用。 后台运行详细用法参见后台运行 脚本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值