uni-app onShareAppMessage中path带有参数,但其他人打开后获取不到传参内容
uni-app onShareAppMessage中path带有参数,但其他人打开后获取不到传参内容
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Mac | 10.15.7 | HBuilderX |
| 3.2.6 | ||
| 1.05.2107221 | ||
| 8.0.9 |
示例代码:
onShareAppMessage() {
let routeDeep = getCurrentPages().length - 1
let parentuserid = uni.getStorageSync('userinfo').userid //推荐人userid,分享时为本人userid
let pageroute = getCurrentPages()[routeDeep].route + "?parentuserid="+parentuserid
return {
path: pageroute,
title:'分享的标题',
content: '',
imageUrl: ''
}
}
其他人打开后监测parentuserid代码就在onLoad中执行的
onLoad(e) {
console.log(e)
}
更多关于uni-app onShareAppMessage中path带有参数,但其他人打开后获取不到传参内容的实战教程也可以访问 https://www.itying.com/category-93-b0.html
好几天了,领导们看看?
更多关于uni-app onShareAppMessage中path带有参数,但其他人打开后获取不到传参内容的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在 onShareAppMessage 中通过 path 传递参数,但在分享页面打开后无法获取到参数,通常是由于以下原因:
-
页面路径格式问题:
path必须以/开头,且应使用绝对路径。你的代码中getCurrentPages()[routeDeep].route获取的路径可能不包含开头的/,导致拼接后的路径格式不正确。建议手动添加/前缀,例如:let pageroute = '/' + getCurrentPages()[routeDeep].route + "?parentuserid=" + parentuserid -
页面未在
pages.json中注册:分享的页面路径必须在pages.json的pages数组中注册,否则无法正常跳转和传参。请检查分享的目标页面是否已正确配置。 -
小程序端路径限制:部分小程序平台(如微信小程序)对分享路径有长度限制或特殊字符限制。确保
parentuserid不包含空格、中文等特殊字符,必要时使用encodeURIComponent编码参数。 -
分享卡片缓存问题:小程序平台可能会缓存分享卡片,导致参数未更新。尝试修改参数值或清除小程序缓存后重新测试。
-
onLoad参数获取方式:你的onLoad中直接通过e打印参数是正确的。但需注意,如果页面是通过其他方式(如扫码或菜单)进入,e可能为空。建议添加判空逻辑:onLoad(e) { if (e && e.parentuserid) { console.log('parentuserid:', e.parentuserid) } }
建议修改后的代码:
onShareAppMessage() {
let routeDeep = getCurrentPages().length - 1
let parentuserid = uni.getStorageSync('userinfo').userid
let route = getCurrentPages()[routeDeep].route
// 确保路径以 / 开头,并对参数编码
let pageroute = '/' + route + '?parentuserid=' + encodeURIComponent(parentuserid)
return {
path: pageroute,
title: '分享的标题',
content: '',
imageUrl: ''
}
}

