今天在调整小程序项目获取参数的方法时,发现一直以来有个参数记错了,所以整理一下微信、支付宝、百度小程序的 App.onLaunch
参数的差别,三者基本相似。
微信小程序
{
path: 'pages/handle/handle', // 启动小程序的路径
scene: '1037', // 场景值
query: {
// 启动小程序的 query 参数
// 若没有启动参数,则返回一个空对象
// ...
},
shareTicket: undefined, // string 类型,转发信息
referrerInfo: {
// 来源信息
appId: '', // 来源小程序、公众号或者 App 的 AppId
extraData: {
// 来源小程序传过来的数据,scene=1037 或者 1038 时支持
// ...
}
}
}
返回有效
referrerInfo
的场景有这些。
支付宝小程序
- 小程序首次启动时,
App.onLaunch
方法可获取query
、path
属性值。 - 小程序在后台被用 scheme 打开,也可从
App.onShow
方法中获取query
、path
属性值。
{
path: 'pages/handle/handle', // 当前小程序的页面地址,从启动参数 page 字段解析而来,page 忽略时默认为首页。
scene: '1037', // 场景值
query: {
// 启动小程序的 query 参数
// 若没有启动参数,则不会返回 query 参数。这点跟微信小程序有区别
// ...
},
referrerInfo: {
// 来源消息
appId: '', // 来源小程序
sourceServiceId: '', // 来源插件,当处于插件运行模式时可见。(注意:基础库 1.11.0 版本开始支持)
extraData: {
// 来源小程序传过来的数据。
// ...
}
}
}
百度小程序
需要注意的是,百度小程序之间跳转是通过
appKey
的,所以获取到的referrerInfo.appId
也是指appKey
。这点跟微信、支付宝小程序是有区别的。
{
path: 'pages/handle/handle', // 打开小程序的路径。
scene: '11700000', // 打开智能小程序的场景值,scene 值统一由百度小程序场景值管理中心在 B 端平台统一配置后下发到宿主(例如百度 App),调起协议中会携带相应入口的 scene 值。
query: {
// 打开当前页面路径中的参数
// ...
},
shareTicket: '', // 标记转发对象
referrerInfo: {
// 从另一个小程序打开该小程序时,返回此字段
appId: '', // 来源小程序的 appKey
extraData: {
// 来源小程序传过来的数据
// ...
}
}
}
网友评论