微信小程序,onShareAppMessage自定义分享页面封装后,无法显示自定义页面?

目前使用的原生微信小程序,开发了一个自定义分享页面功能,目前是正常的。

但是我们现在要做,“私密消息”,所以需要把onShareAppMessage函数中代码全部提炼出去,然后分情况调用这部分代码,但是测试过程中发现,只要把代码提炼出去(放到一个函数里面),其他啥都不变,就无法显示自定义分享页面了,而是显示默认的分享页面,这是怎么回事?

改动前:

onShareAppMessage: function (options) {
//省略代码
}

改动后:

handleShare(options) {
//省略代码
},
onShareAppMessage: function (options) {
    this.handleShare(options)
}

原有逻辑提炼到单独方法代码:

  handleShare(options) {
    ///////////////////////////////////////////////////
    let cardObj = options.target.dataset.obj 
    let title = "您好,我是" + cardObj.name + ",这是我的名片"
    // 设置菜单中的转发按钮触发转发事件时的转发内容

    var shareObj = {
      title: title,// 默认是小程序的名称(可以写slogan等)
      path: '/pages/busCard/home/home',// 默认是当前页面,必须是以‘/’开头的完整路径
      imageUrl: cardObj.bigProfileUrl,//自定义图片路径,可以是本地文件路径、代码包文件路径或者网络图片路径,支持PNG及JPG,不传入 imageUrl 则使用默认截图。显示图片长宽比是 5:4
      success: function (res) {
        // 转发成功之后的回调
        if (res.errMsg == 'shareAppMessage:ok') {
          //记录操作日志
          let userInfo = util.getUserInfo()
          util.addLog(userInfo.openId, 4)
        }
      },
      fail: function () {
        // 转发失败之后的回调
        if (res.errMsg == 'shareAppMessage:fail cancel') {
          // 用户取消转发
        } else if (res.errMsg == 'shareAppMessage:fail') {
          // 转发失败,其中 detail message 为详细失败信息
        }
      },
      complete: function(){
        // 转发结束之后的回调(转发成不成功都会执行)
      }
    };
    // 来自页面内的按钮的转发
    if(options.from == 'button'){
      // 此处可以修改 shareObj 中的内容
      shareObj.path = '/pages/busCard/home/home?test=1&source=share&openId=' + cardObj.openId;
    }
    // 返回shareObj
    console.log(JSON.stringify(shareObj))
    return shareObj;
    ///////////////////////////////////////////////////
  },
阅读 3.6k
2 个回答
handleShare(options) {
  retuern { title: xxxx }
},
onShareAppMessage: function (options) {
    // 这加个return
    return this.handleShare(options)
}
handleShare(options) {
    // 在这里生成你的分享信息
    var shareObj = {
        title: "自定义分享标题",
        path: "/pages/share/share",
        imageUrl: "/images/share.jpg"
    };
    return shareObj;
},
onShareAppMessage: function (options) {
    return this.handleShare(options);
}

https://developers.weixin.qq.com/community/develop/doc/000a48...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题