收藏
回答

通过button实现的分享功能,事件不能传参

问题模块
API和组件

给button设置属性open-type="share"实现分享,好像不能传参呢,就是说onShareAppMessage接不到任何参数。

请问何时可以支持传参?或者说永不支持了呢

最后一次编辑于  2017-05-23  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏关注问题回答

24 个回答

  • 瑞冰
    瑞冰
    2017-10-23

    @stephen  你的搞定了吗。

    经过@李家灏 的研究,终于发现了一个好东西,那就是


    这样就可以用bindtouchstart来修改data中的值。

    在此感谢 @李家灏!!!

    2017-10-23
    赞同 22
    回复 1
    • Q
      Q
      2018-07-06
      onShareAppMessage(options) {
          // TODO: 隐患,不知用户会不会停留在分享页面直到超时后再确认?看测试情况应该是确认分享后才开始计时
          setTimeout(() => {
              this.shareItemData = {};
          }, 1000);
          return this.shareItemData;
      }


      @李家灏 @瑞冰


      非常感谢,有效~

      2018-07-06
      赞同
      回复
  • PPLL
    PPLL
    2017-05-23

    onShareAppMessage不能接受参数,可以换思维啊,把参数放在变量里,然后分享出去的url放置参数,然后进入是在onLoad事件里可以接收参数。

    2017-05-23
    赞同
    回复
  • PPLL
    PPLL
    2017-05-27

    哼哼,看一楼的回答。把参数放在url里,然后onLoad接收

    2017-05-27
    赞同
    回复
  • 瑞冰
    瑞冰
    2017-05-27

    需要实现的需求:在一个列表页,给每条数据放置一个button分享按钮,点击该按钮后把对应的详情页分享给好友。

    问题:onShareAppMessage不可以接收参数,有没有办法可以代替传参。

    2017-05-27
    赞同
    回复
  • PPLL
    PPLL
    2017-05-27

    你在分享的时候的url假设为:pages/index/index,分享出去时->pages/index/index?data=123',

    然后你在好友点进这个分享链接,你在分享页面的onLoad事件里接收这个data。。var data=options.data-->123

    2017-05-27
    赞同
    回复
  • 瑞冰
    瑞冰
    2017-05-27

    你先看明白再评论好吗。不是一个分享按钮,是一堆。

    2017-05-27
    赞同
    回复
  • PPLL
    PPLL
    2017-05-27

    我知道是一堆, 你的编程思想能再局限点?我都给你思路了

    2017-05-27
    赞同
    回复
  • stephen
    stephen
    2017-06-21

    楼主问题解决了么?我也遇到同样的问题,原先以为再button上加个bindtap 改变路径,但结果和你一样,onshareappmessage不等bindtap 就执行了。


    @PPLL

    没明白您的意思,假设我的页面上有三个按钮 a b c

    想实现点 a按钮 分享的路径是/page/aaa, b按钮的分享路径是/page/bbb,麻烦您告诉我怎么写,谢谢

    2017-06-21
    赞同
    回复
  • PPLL
    PPLL
    2017-06-21

        if(bt==a{

        var url=/page/aaa?data='xxx'

    }   

        if(bt==b){

        var url=/page/ccc?data='xxx'

    }    

     

        if(bt==c){

        var url=/page/ccc?data='xxx'

    }    


    2017-06-21
    赞同
    回复
  • stephen
    stephen
    2017-06-21

    @谢谢回复,这个我明白,但。。。


     onShareAppMessage: function() {  
          return {
            title: title,
            path: path
          }
      }


    启动分享时会立刻调用onShareAppMessage, 根本没机会再往path里传值了,就是页面onload时 path设的是什么就是什么了

    2017-06-21
    赞同
    回复