收藏
回答

一个页面里面有多个分享按钮,点击不同按钮分享内容不同

框架类型 终端类型 操作系统 微信版本 基础库版本
小程序 客户端 Android 6.6.3 1.9.91

开发公司商城小程序期间,遇到一个需求,用户订单列表页每个订单下方有一个分享按钮,希望用户点击不同按钮分享出去的title,path不一样。


在开发工具里面试了下,点击分享按钮通过setData的方式定义title,path.,发现在

onShareAppMessage里面获取不到。

换了一种方式,将title,path在页面初始化时候,默认为第一个订单相关的数据,分享的时候可以获取到title,path,但是点击按钮分享的数据总是上一次的数据。

请问这种情况怎么解决,是我哪里处理错了吗

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

16 个回答

  • 王立建
    王立建
    2018-02-26

    我也这么觉得,但是这样的问题怎么解决呢,我就是希望用户点击页面按钮直接转发,并且点击按钮的同时自定义分享信息

    2018-02-26
    有用
    回复
  • 这都申请了
    这都申请了
    2018-02-26

    这个应该是先触发onShareAppMessage再触发initShareData吧,或者同时触发,你最好加日志调试一下

    2018-02-26
    有用
    回复
  • 王立建
    王立建
    2018-02-26

    邀请好友拼单 就是一个button,并且open-type="share",因此是可以直接调起转发功能的,只是我在该按钮上绑定了

    initShareData事件,该事件根据button的data属性获取该订单信息,然后拼接分享链接和标题信息;

    流程上应该是没问题的


    2018-02-26
    有用
    回复
  • 这都申请了
    这都申请了
    2018-02-26

    代码看不出来问题,流程是怎么控制的呢?怎么确保先点击‘邀请好友拼单’,再点右上角分享?

    2018-02-26
    有用
    回复
  • 王立建
    王立建
    2018-02-26

    <button type='primary' open-type='share' data-goods="{{goods}}" data-group="{{item.group.group_number}}" bindtap='initShareData' size='mini'>邀请好友拼单</button>


    initShareData: function(event) {

    let dataset = event.currentTarget.dataset,

    goods = dataset.goods;

    // console.log(goods)

    this.setData({

    shareTitle: '等你来拼 ' + goods.goods_name + ',就差你了;发动你的朋友一起来拼团,拼到就是赚到',

    imageUrl: goods.goods_image,

    group: dataset.group

    })

    },

    /**

      * 用户点击右上角分享

      */

    onShareAppMessage: function () {

    var url = encodeURIComponent('https://shop.iopenshop.com/shared?groupid=' + this.data.group),

    title = this.data.shareTitle;

    console.log(url, title)

    var obj = {

    title: title,

    path: '/pages/webview/webview?url=' + url,

    imageUrl: this.data.imageUrl

    };

    console.log(obj)

    return obj;

    }


    2018-02-26
    有用
    回复
  • 这都申请了
    这都申请了
    2018-02-26

    按照你的描述,应该是setdata没有生效吧,最后贴一下代码

    2018-02-26
    有用
    回复

正在加载...

登录 后发表内容