收藏
回答

分享问题

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug onShareAppMessage(Object) 客户端 6.6.7 2.0.4

分享时,使用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;

// }

//增加分享添加


});


回答关注问题邀请回答
收藏
登录 后发表内容