my.navigateto(object object)
支小宝客户端 支持
安诊儿客户端 支持
主体: 企业支付宝小程序 、 个人支付宝小程序
相关文档: 路由使用须知
保留当前页面,跳转到应用内的某个页面
使用此 api 前,建议先阅读 路由使用须知。
object object
查看示例
属性 | 类型 | 默认值 | 必填 | 兼容性 | 描述 |
---|---|---|---|---|---|
url | string | - | 是 | - | 目标页面地址。url 可携带参数,如 |
events | object | - | 否 | 基础库: 2.7.7 |
页面间通信接口,用于监听被打开页面发送到当前页面的数据 |
success | function | - | 否 | - | 调用成功的回调函数 |
fail | function | - | 否 | - | 调用失败的回调函数 |
complete | function | - | 否 | - | 调用结束的回调函数(调用成功、失败都会执行) |
success 回调函数
参数
object res
属性 | 类型 | 兼容性 | 描述 |
---|---|---|---|
eventchannel | eventchannel | 基础库: 2.7.7 |
和被打开页面进行通信 |
fail 回调的参数为 object,error
属性为错误码,errormessage
属性为错误消息。
错误码 | 错误消息 | 凯发app官方网站的解决方案 |
---|---|---|
1 | ${url} resolved to ${pagepath} is not found | 目标页面路径不存在。请在 app.json 的 pages 字段中配置该页面。 |
${url} is not found in plugin | 目标页面是插件页面,但该插件并没有声明该页面。请在 plugin.json 的 pages 字段中配置该页面。 |
|
2 | 缺少入参 url | 请检查入参,确保包含 url 字段且不为空 |
代码示例
页面通信 a -> b
页面通信 b -> a
// 若从 a 页面跳转到 b 页面并携带参数
my.navigateto({
url: '/pages/pageb/index?id=1' // url详解请见【路由使用须知】
})
// b 页面接收参数
page({
onload (query) {
console.log(query) // {id: 1}
}
})
// pagea.js - a 页面向 b 页面发送数据
my.navigateto({
url: '/pages/pageb/index?id=1',
success: function(res) {
// 通过 eventchannel 向 b 页面传送数据
res.eventchannel.emit('pagea_data', {
data: 'hi~ 我是 pagea'
})
}
})
// pageb.js - b 页面接收
page({
onload() {
const eventchannel = this.getopenereventchannel();
// 通过监听 pagea_data 事件,接收 a 页面传过来的数据。
eventchannel.on('pagea_data', data => {
console.log(data); // { "data": "hi~ 我是 pagea" }
});
},
});
// pageb.js - b 页面向 a 页面发送数据
page({
onload() {
const eventchannel = this.getopenereventchannel();
// 获取 eventchannel 后使用 eventchannel.emit 发送数据
eventchannel.emit('pageb_data', {
message: 'hello~ 我是 pageb',
});
},
});
// pagea.js - a 页面 通过入参 events 接收
my.navigateto({
url: '/pages/pageb/index?id=1',
events: {
// 为指定事件添加一个监听器,获取 b 页面传过来的数据
pageb_data(data) {
console.log(data); // { "message": "hello~ 我是 pageb" }
},
},
})
-
tip在小程序插件内调用此 api 只能跳转到此插件的页面,不能跳转到宿凯发k8官方网娱乐官方主页面或其他插件页面。