微信小程序---全局分享实现

微信小程序目前一个每个页面都分享数据都不一样。导致每个页面都需要写重复的代码,为了方便快捷的统一管理分享。方法如下:

方法一:

1、在需要被分享的页面添加如下代码

Page({
    /**
     * 用户点击右上角分享  增加
     */
    onShareAppMessage: function () {
        // 函数体内容为空即可
    }

2、在 app.js 中添加重写分享方法

//重写分享方法
overShare: function () {
    //间接实现全局设置分享内容
    wx.onAppRoute(function () {
        //获取加载的页面
        let pages = getCurrentPages(),
            //获取当前页面的对象
            view = pages[pages.length - 1],
            data;
        if (view) {
            data = view.data;
            // 判断是否需要重写分享方法
            if (!data.isOverShare) {
                data.isOverShare = true;
                view.onShareAppMessage = function () {
                    //重写分享配置
                    return {
                        title: '分享标题',
                        path: "/pages/index/index"    //分享页面地址
                    };
                }
            }
        }
    })
},

3、在app.js  onLaunch 函数中调用该方法

onLaunch() {
    this.overShare()
}

分享携带参数,可以参照方法二来实现。就不一一写出来了。不懂的小伙伴可以私聊我

方法二:

1、在公共js写入

//分享功能
function shareEvent(option, obj){
  let shareObj = {
    title: obj.title,
    path: obj.path + '?obj.scan=' + obj.scan,
    imageUrl: obj.imageUrl,
    success(res) { // 转发成功之后的回调
      if (res.errMsg == 'shareAppMessage:ok') { }
    },
    fail(res) { // 转发失败之后的回调
      if (res.errMsg == 'shareAppMessage:fail cancel') {//用户取消转发
      } else if (res.errMsg == 'shareAppMessage:fail') {// 转发失败,其中 detail message 为详细失败信息
      }
    },
    complete() {// 转发结束之后的回调(转发成不成功都会执行)
    }
  };
  if (option.from === 'button') {// 来自页面内转发按钮
    console.log(option.target)
  }
  return shareObj;
}

在页面上调用

/**
   * 用户点击右上角分享
   */
  onShareAppMessage: function (option) {
    let imageUrl = '/img/ucenter/head.jpg';
    let sharePath = "/pages/index/index";
    let shareTitle = "快来进来吧~";
    let obj = {
      title: shareTitle,
      path: sharePath,
      imageUrl: imageUrl,
      scan:"ddd"
    };
    return util.shareEvent(option, obj);
  },

你可能感兴趣的:(微信小程序,微信小程序,javascript,前端)