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

作者站长头像
站长
· 阅读数 6

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

但是我们现在要做,“私密消息”,所以需要把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;
    ///////////////////////////////////////////////////
  },
回复
1个回答
avatar
test
2024-07-02
handleShare(options) {
  retuern { title: xxxx }
},
onShareAppMessage: function (options) {
    // 这加个return
    return this.handleShare(options)
}
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容