分享时,使用onShareAppMessage,var that=this时console.log(this) 中可以打印出来已经获取到的详情页数据,但是分享出去却是空的,空白页显示未获取到数据
代码如下:
var server = require('../../../utils/server');
var WxParse = require('../../../wxParse/wxParse.js');
Page({
data: {
goods: {},
sc: [],
status: 0,
current: 0,
tabStates: [true, false, false],
tabClasss: ["text-select", "text-normal", "text-normal"],
galleryHeight: getApp().screenWidth,
tab: 0,
goods_num: 1,
textStates: ["view-btns-text-normal", "view-btns-text-select"],
article: '<div>我是HTML代码</div>',
},
onLoad: function (options) {
var goodsId = options.objectId;
var user_id = getApp().globalData.userInfo.user_id
var that = this
server.getJSON('/Goods/goodsInfo/id/' + goodsId + '/user_id/' + user_id, function (res) {
var goodsInfo = res.data.result;
var sc = res.data.result.sc;
that.setData({
goods: goodsInfo,
sc: sc,
name: res.data.result.goods.goods_name,
objectId: res.data.result.goods.goods_id,//增加分享添加
});
console.log(res.data.result.goods.goods_id)
that.checkPrice();
WxParse.wxParse('article', 'html', that.data.goods.goods.goods_content, that, 5);
});
console.log('onLoad-options.objectId:' + options.objectId);
},
propClick: function (e) {
var pos = e.currentTarget.dataset.pos;
var index = e.currentTarget.dataset.index;
var goods = this.data.goods
console.log(this.data.goodId)
for (var i = 0; i < goods.goods.goods_spec_list[index].length; i++) {
if (i == pos)
goods.goods.goods_spec_list[index][pos].isClick = 1;
else
goods.goods.goods_spec_list[index][i].isClick = 0;
}
this.setData({ goods: goods });
this.checkPrice();
},
addCollect: function (e) {
var that = this;
var goods_id = e.currentTarget.dataset.id;
var ctype = 0;
var user_id = getApp().globalData.userInfo.user_id
server.getJSON('/Goods/collectGoods/user_id/' + user_id + "/goods_id/" + goods_id + "/type/" + ctype, function (res) {
if (res.data.status == 1) {
wx.showToast({
title: res.data.msg,
icon: 'success',
duration: 0
});
that.setData({
status: 1
})
}
wx.showToast({
title: res.data.msg,
icon: 'error',
duration: 2000
});
});
},
bindMinus: function (e) {
var num = this.data.goods_num;
if (num > 1) {
num--;
}
this.setData({ goods_num: num });
},
bindManual: function (e) {
var index = parseInt(e.currentTarget.dataset.index);
var num = e.detail.value;
this.setData({ goods_num: num });
},
bindPlus: function (e) {
var num = this.data.goods_num;
num++;
this.setData({ goods_num: num });
},
tabClick: function (e) {
var index = e.currentTarget.dataset.index
var classs = ["text-normal", "text-normal", "text-normal"]
classs[index] = "text-select"
this.setData({ tabClasss: classs, tab: index })
},
checkPrice: function (e) {
var goods = this.data.goods;
var spec = ""
this.setData({ price: goods.goods.shop_price });
for (var i = 0; i < goods.goods.goods_spec_list.length; i++) {
for (var j = 0; j < goods.goods.goods_spec_list[i].length; j++) {
if (goods.goods.goods_spec_list[i][j].isClick == 1) {
if (spec == "")
spec = goods.goods.goods_spec_list[i][j].item_id
else
spec = spec + "_" + goods.goods.goods_spec_list[i][j].item_id
}
}
}
var specs = spec.split("_");
for (var i = 0; i < specs.length; i++) {
specs[i] = parseInt(specs[i])
}
specs.sort(function (a, b) { return a - b });
spec = ""
for (var i = 0; i < specs.length; i++) {
if (spec == "")
spec = specs[i]
else
spec = spec + "_" + specs[i]
}
var price = goods['spec_goods_price'][spec].price;
this.setData({ price: price });
},
bug: function () {
var goods = this.data.goods;
var spec = ""
if (goods.goods.goods_spec_list != null)
for (var i = 0; i < goods.goods.goods_spec_list.length; i++) {
for (var j = 0; j < goods.goods.goods_spec_list[i].length; j++) {
if (goods.goods.goods_spec_list[i][j].isClick == 1) {
if (spec == "")
spec = goods.goods.goods_spec_list[i][j].item_id
else
spec = spec + "_" + goods.goods.goods_spec_list[i][j].item_id
}
}
}
var app = getApp()
var that = this;
var goods_id = that.data.goods.goods.goods_id;
var goods_spec = spec;
var session_id = app.globalData.openid//that.data.goods.goods.spec_goods_price
var goods_num = that.data.goods_num;
var user_id = "0"
if (app.globalData.login)
user_id = app.globalData.userInfo.user_id
server.getJSON('/Cart/addCart', { goods_id: goods_id, goods_spec: goods_spec, session_id: session_id, goods_num: goods_num, user_id: user_id }, function (res) {
if (res.data.status == 1) {
wx.showToast({
title: '已加入购物车',
icon: 'success',
image: "../../../images/favorite.png",
duration: 2000
});
wx.switchTab({
url: '../../cart/cart'
});
}
else
wx.showToast({
title: res.data.msg,
icon: 'error',
duration: 2000
});
});
return;
},
addCart: function () {
var goods = this.data.goods;
var spec = ""
if (goods.goods.goods_spec_list != null)
for (var i = 0; i < goods.goods.goods_spec_list.length; i++) {
for (var j = 0; j < goods.goods.goods_spec_list[i].length; j++) {
if (goods.goods.goods_spec_list[i][j].isClick == 1) {
if (spec == "")
spec = goods.goods.goods_spec_list[i][j].item_id
else
spec = spec + "_" + goods.goods.goods_spec_list[i][j].item_id
}
}
}
var app = getApp()
var that = this;
var goods_id = that.data.goods.goods.goods_id;
var goods_spec = spec;
var session_id = that.data.goods.goods.spec_goods_price//that.data.goods.goods.spec_goods_price
var goods_num = that.data.goods_num;
var user_id = "0"
if (app.globalData.login)
user_id = app.globalData.userInfo.user_id
server.getJSON('/Cart/addCart', { goods_id: goods_id, goods_spec: goods_spec, session_id: session_id, goods_num: goods_num, user_id: user_id }, function (res) {
if (res.data.status == 1)
wx.showToast({
title: '已加入购物车',
icon: 'success',
duration: 1000
});
else
wx.showToast({
title: res.data.msg,
icon: 'error',
duration: 1000
});
});
},
showCartToast: function () {
wx.showToast({
title: '已加入购物车',
icon: 'success',
duration: 1000
});
wx.navigateTo({
url: '../../../../../../cart/cart'
});
},
previewImage: function (e) {
wx.previewImage({
//从<image>的data-current取到current,得到String类型的url路径
current: this.data.goods.get('images')[parseInt(e.currentTarget.dataset.current)],
urls: this.data.goods.get('images') // 需要预览的图片http链接列表
})
},
//增加分享添加
onShareAppMessage: function (res) {
if (res.from === 'button') {
// 来自页面内转发按钮
console.log(res.target)
}
console.log(this.data.name)
return {
title: this.data.name,
desc: '',
path: '/pages/goods/detail/detail?objectId='+that.data.objectId ,
success: function (res) {
console.log(res)
// 转发成功
console.log("转发成功:" + JSON.stringify(res));
},
fail: function (res) {
// 转发失败
console.log("转发失败:" + JSON.stringify(res));
}
}
}
// var that = this;
// console.log(that.data)
// return this.data.shareData
// return {
// title: that.data.name,
// desc: '',
// path: '/pages/goods/detail/detail?objectId=' + that.data.bojectId,
// success(e) {
// // shareAppMessage: ok,
// // shareTickets 数组,每一项是一个 shareTicket ,对应一个转发对象
// // 需要在页面onLoad()事件中实现接口
// wx.showShareMenu({
// // 要求小程序返回分享目标信息
// withShareTicket: true
// });
// },
// fail(e) {
// // shareAppMessage:fail cancel
// // shareAppMessage:fail(detail message)
// },
// complete() { },
// }
// },
// onShareAppMessage: function (options) {
// var that = this;
// // 设置菜单中的转发按钮触发转发事件时的转发内容
// var shareObj = {
// title: "转发的标题", // 默认是小程序的名称(可以写slogan等)
// path: "/pages/goods/detail/detail?objectId='+that.data.bojectId", // 默认是当前页面,必须是以‘/’开头的完整路径
// imgUrl: '', //自定义图片路径,可以是本地文件路径、代码包文件路径或者网络图片路径,支持PNG及JPG,不传入 imageUrl 则使用默认截图。显示图片长宽比是 5:4
// success: function (res) {
// // 转发成功之后的回调
// if (res.errMsg == 'shareAppMessage:ok') {
// }
// },
// fail: function () {
// // 转发失败之后的回调
// if (res.errMsg == 'shareAppMessage:fail cancel') {
// // 用户取消转发
// } else if (res.errMsg == 'shareAppMessage:fail') {
// // 转发失败,其中 detail message 为详细失败信息
// }
// },
// // complete: fucntion(){
// // 转发结束之后的回调(转发成不成功都会执行)
// // }
// };
// // 来自页面内的按钮的转发
// if (options.from == 'button') {
// var eData = options.target.dataset;
// console.log(eData.name); // shareBtn
// // 此处可以修改 shareObj 中的内容
// shareObj.path = '/pages/goods/detail/detail?objectId=' + that.data.objectId;
// }
// // 返回shareObj
// return shareObj;
// }
//增加分享添加
});