onShareAppMessage自定义转发问题
发布于 6 年前 作者 xia30 14103 次浏览 来自 问答

onShareAppMessage: function(res) {

   var that = this;

   if (res.from === ‘button’) { // 来自页面内按钮

     var nickName = “”,

       avatarUrl = “”,

       timestamp = that.data.timestamp;

     var time = util.formatTime(timestamp).substring(0, 16);

     new Promise(function(resolve, reject) {

       wx.getSetting({

         success(res) {

           if (res.authSetting[‘scope.userInfo’]) {

             wx.getUserInfo({

               success: function(res) {

                 nickName = res.userInfo.nickName;

                 avatarUrl = res.userInfo.avatarUrl;

                 resolve();

               },

             })

           }

         }

       })

     }).then(() => {

       console.log(nickName + avatarUrl);

       return {

         title: ‘xx,不服来战’,

         path: ‘/pages/challenge/challenge?ratio=’ + that.data.ratio + ‘&nickName=’ + nickName + ‘&avatarUrl=’ + avatarUrl + ‘&time=’ + time + ‘&id=’ + Date.parse(timestamp) + that.data.templv + Math.floor(Math.random() * 99999)

       }

     })

   }

 }

我要获取用户信息,传递到自定义转发页面,如代码所示return写在then代码块里,得到的是一个默认转发,自定义内容无效?return部分若不写then中,提取到onShareAppMessage代码块底部又因为异步处理而得不到用户信息

3 回复

可以提前获取到放到data里面,然后从data里面去取

let path = ‘/pages/card-detail/index?card_id=’ + JSON.stringify(this.data.card_id)

return {

title: ‘收到一张来自’ + this.data.name + ‘的名片’,

imageUrl: this.data.imageUrl,

path: path

}

如果在path里面直接拼接 this.data.card_id是不行的, 把path写成变量 ,就ok了。太鸡儿坑了

你只能提前获取你转发需要的东西,这里面不能异步,不会等你的。

回到顶部