开发公司商城小程序期间,遇到一个需求,用户订单列表页每个订单下方有一个分享按钮,希望用户点击不同按钮分享出去的title,path不一样。
在开发工具里面试了下,点击分享按钮通过setData的方式定义title,path.,发现在
onShareAppMessage里面获取不到。
换了一种方式,将title,path在页面初始化时候,默认为第一个订单相关的数据,分享的时候可以获取到title,path,但是点击按钮分享的数据总是上一次的数据。
请问这种情况怎么解决,是我哪里处理错了吗
框架类型 | 终端类型 | 操作系统 | 微信版本 | 基础库版本 |
---|---|---|---|---|
小程序 | 客户端 | Android | 6.6.3 | 1.9.91 |
我也这么觉得,但是这样的问题怎么解决呢,我就是希望用户点击页面按钮直接转发,并且点击按钮的同时自定义分享信息
这个应该是先触发onShareAppMessage再触发initShareData吧,或者同时触发,你最好加日志调试一下
邀请好友拼单 就是一个button,并且open-type="share",因此是可以直接调起转发功能的,只是我在该按钮上绑定了
initShareData事件,该事件根据button的data属性获取该订单信息,然后拼接分享链接和标题信息;
流程上应该是没问题的
代码看不出来问题,流程是怎么控制的呢?怎么确保先点击‘邀请好友拼单’,再点右上角分享?
<button type='primary' open-type='share' data-goods="{{goods}}" data-group="{{item.group.group_number}}" bindtap='initShareData' size='mini'>邀请好友拼单</button>
initShareData: function(event) {
let dataset = event.currentTarget.dataset,
goods = dataset.goods;
// console.log(goods)
this.setData({
shareTitle: '等你来拼 ' + goods.goods_name + ',就差你了;发动你的朋友一起来拼团,拼到就是赚到',
imageUrl: goods.goods_image,
group: dataset.group
})
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
var url = encodeURIComponent('https://shop.iopenshop.com/shared?groupid=' + this.data.group),
title = this.data.shareTitle;
console.log(url, title)
var obj = {
title: title,
path: '/pages/webview/webview?url=' + url,
imageUrl: this.data.imageUrl
};
console.log(obj)
return obj;
}
按照你的描述,应该是setdata没有生效吧,最后贴一下代码