uniapp 小程序分享朋友圈功能记录
一. 起因
公司项目需要分享好友或者朋友圈绑定关系,但是开发途中发现分享好友没问题,但是分享朋友圈获取不到参数在测试多次无果,找大佬帮助发现小程序直接分享朋友圈是获取不到参数的但是先将小程序分享给自己然后自己再从自己分享的小程序链接进入后在分享朋友圈就没问题了,目前我认为是微信的坑或者是什么策略,做个记录希望可以帮助到后来的人。
二. 代码实现
在和 methods 同级的地方写上 onShareAppMessage 和 onShareTimeline 函数 里面需要 return 一个对象
看一下官方的参数解释:
代码实现
methods:{...},
// 分享到好友
onShareAppMessage() {
return {
// 标题
title: '给你分享个好东西',
// 点击分享链接跳转的页面
path: `/pages/home/home?id=999`,
// 分享时显示的图片,不写默认小程序logo
imageUrl: 'http://www.sadlkjk.com/images/logo.png'
}
},
// 分享到朋友圈
onShareTimeline() {
return {
// 标题
title: '给你分享个好东西',
// 点击分享链接跳转的页面 ?后面拼接参数
path: `/pages/home/home?id=999`,
// 参数多的情况下可以用 query 更清晰
// query:{
// id: 999
// name:'小明'
// },
// 分享时显示的图片,不写默认小程序logo
imageUrl: 'http://www.sadlkjk.com/images/logo.png'
};
},
这个分享可能每个页面都用到如果都需要带参数的话建议使用 mixin 混入
效果:
获取代码在对应 path参数页面的 onLode 中获取:
onLoad:(options) {
for (var key in options) {
console.log("接收的id:" + key); //key就是上面传递过来的值
}
},
问题
这是直接点击分享朋友圈然后进入获取到的参数:
获取参数:
这是直接右上角分享进入获取的参数:
这是先分享到个人然后从个人进入的参数:
到现在我都没修改过代码分享朋友圈我只不过是先从个人分享链接进一下然后再分享的朋友圈就有参数了,到这就没了做个记录。