收藏
回答

微信小程序的分享功能如何异步实现?

微信小程序的分享功能如何异步实现?

回答关注问题邀请回答
收藏

5 个回答

  • w3cmark
    w3cmark
    2020-12-10

    右上角那个胶囊菜单分享是暂时无法实现乙部分享的。

    2020-12-10
    有用 1
    回复
  • 卢霄霄
    卢霄霄
    2020-12-10

    onShareAppMessage() {

    return new Promise((resolve)=>{

    setTimeout(()=>{

    resolve({

    title: "lux"

    })

    },2000)

    })

    }

    但是具体哪个版本开始支持的 我不记得了

    2020-12-10
    有用 3
    回复 4
    • 孝^_^
      孝^_^
      2020-12-24
      谢谢
      2020-12-24
      回复
    • 徐天弋
      徐天弋
      2021-04-17
      完全正确的回答 直接解决了问题
      2021-04-17
      回复
    • ZL
      ZL
      2023-03-03
      有完整的代码片段吗
      2023-03-03
      回复
    • 卢霄霄
      卢霄霄
      发表于小程序端
      2023-03-04回复ZL

      就是resolve之前return的对象

      2023-03-04
      回复
  • 浪花骑士
    浪花骑士
    2020-12-10

    微信小程序的分享功能无法异步实现,

    可以考虑在data中定义好分享配置,

    然后分享的时候return在data中定义好的配置.

    在onLoad的时候或者有操作需要改变分享配置就去改data中定义的配置

    2020-12-10
    有用
    回复 7
    • 孝^_^
      孝^_^
      2020-12-10
      想要的效果,先获取分享内容再去分享
      2020-12-10
      回复
    • 孝^_^
      孝^_^
      2020-12-10
      我必须先去获取inviteId,然后再获取分享内容,再去分享
      2020-12-10
      回复
    • 孝^_^
      孝^_^
      2020-12-10
      2020-12-10
      回复
    • 孝^_^
      孝^_^
      2020-12-10
      必须再点击图一时,获取到分享内容再去分享
      2020-12-10
      回复
    • 浪花骑士
      浪花骑士
      2020-12-10回复孝^_^
      那先把图一所有的分享内容都先在onLoad之类的时机获取到,
      不要在点击图一的时候获取.
      只在点击图一的时候设置下选择的信息到data里,
      然后在onShareAppMessage里return相关信息即可.
      -----------------------------------
      而且你点击图一的时候获取把return写在then里面
      就算是同步执行获取的,实际上onShareAppMessage也收不到你的return
      (别问为什么.js基础了解一下)
      2020-12-10
      回复
    查看更多(2)
  • Code Weaver
    Code Weaver
    2020-12-10

    没办法的哈。只有改交互。点击分享按钮 弹出弹窗的同时调用接口设置分享信息。再点弹窗上的按钮 弹出微信好友列表进行分享。

    2020-12-10
    有用
    回复 5
    • 孝^_^
      孝^_^
      2020-12-10
      onShareAppMessage(res){
          if (res.from === 'button') {
            var inviteId=0
            if(this.data.compCount>1){
              inviteId=res.target.dataset.id
            }else{
              inviteId=this.data.defaultId
            }
            distributionUsersShareFriends(inviteId).then(res=>{
            console.log(res)
              return {
                title:res.data.shareSummary,
                imageUrl:res.data.shareImgUrl,
                path: '/pages/distribution/index/index?inviteId=+inviteId,
              }
            })
          }
        }
      2020-12-10
      回复
    • 孝^_^
      孝^_^
      2020-12-10
      我这个就是先获取分享数据再return,但是事实return在获取分享数据之前已经执行了
      2020-12-10
      回复
    • 孝^_^
      孝^_^
      2020-12-10
      想要的效果,先获取分享内容再去分享
      2020-12-10
      回复
    • 猛男陈阔
      猛男陈阔
      2020-12-10回复孝^_^
      你可以在列表中每个item里让他把分享信息返回给你就好了呀
      2020-12-10
      回复
    • Code Weaver
      Code Weaver
      2020-12-10回复孝^_^
      做不了的。因为是直接弹出了好友列表。这个时候已经abort了请求
      2020-12-10
      回复
  • 孝^_^
    孝^_^
    2020-12-10

    如果按钮触发呢?

    2020-12-10
    有用
    回复
登录 后发表内容
问题标签