QQ小程序页面分享时,如何正确设置分享内容和路径?
在开发QQ小程序时遇到了分享功能问题,按照文档写了wx.updateShareMenu,但分享卡片显示的还是默认标题和路径,路径参数也没带进去。
场景是点击按钮触发分享,代码写了:
onShareClick() {
wx.updateShareMenu({
withShareTicket: true,
success() {
console.log('更新成功')
}
})
}
发现分享卡片标题还是页面配置的默认值,路径一直是”/pages/index/index”,没有带上当前页面的查询参数。试过在app.json里配置defaultShare,但QQ小程序好像不支持这个字段…
onShareAppMessage这个生命周期函数上,QQ小程序的分享内容完全依赖它返回的数据,wx.updateShareMenu只是配置分享菜单的样式(比如是否带withShareTicket),不会自动带路径参数或改标题。你得在页面里加上
onShareAppMessage,比如这样:注意几个坑:
-
path必须是真实存在的小程序页面路径,不能是相对路径,也不能写错大小写- 要带上参数的话,直接拼在
path字符串里就行,比如?id=xxx,但注意 URL 编码- 如果你希望每次分享都动态生成路径(比如当前页的某个状态),可以在
onShareAppMessage里读this.data或this.data.id拼进去-
defaultShare这个字段确实不支持,QQ小程序不走这个配置,必须代码里返回另外确认下:分享按钮得是官方的
<button open-type="share">,或者你手动触发onShareAppMessage的时机对不对——不过你代码里是点按钮触发wx.updateShareMenu,这没问题,但别忘了页面一加载就写好onShareAppMessage,它只在用户点击右上角菜单或调用button share时才执行。最后,QQ开发者工具里有时候缓存比较狠,改完代码记得重启模拟器再试,别光热更新。
onShareAppMessage方法来设置内容和路径,直接在页面里加这个方法就行。updateShareMenu只是更新分享设置,具体内容还是得靠onShareAppMessage来定。懒得折腾的话,直接把需要的参数拼到path里完事。