旅游教育出版社-数字教材移动端
litian
2025-06-30 a874dd8b06b90ea5157e9809fcdf5a38ad115dde
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
// 注:
// 1、微信不支持分享回调,分享统计使用分享链接传参,被分享用户点击后进行分享统计;
// 2、入口为链接的用户,分享只能分享链接
 
import wx from 'weixin-js-sdk';
import MG from '../middleGround/WebMiddleGroundApi';
import config from '@/assets/js/config';
 
export function shareJs(jssdk, options) {
  wx.config({
    debug: false, //是否开启调试功能,这里关闭!
    appId: jssdk.appId, //appid
    timestamp: parseInt(jssdk.timestamp), //时间戳
    nonceStr: jssdk.nonceStr, //生成签名的随机字符串
    signature: jssdk.signature, //签名
    jsApiList: ['updateAppMessageShareData', 'updateTimelineShareData'],
  });
  var defaults = {
    title: '分享的标题',
    desc: '分享的描述',
    link: '', //分享页面地址,不能为空,这里可以传递参数!!!!!!!
    imgUrl: 'https://tup.iheima.com/sport.png', //分享是封面图片,不能为空
    success: function () { }, //分享成功触发
    cancel: function () { }, //分享取消触发,需要时可以调用
  };
  // 合并对象,后面的替代前面的!
  options = Object.assign({}, defaults, options);
  wx.ready(function () {
    var thatopts = options;
    // 分享到朋友圈
    wx.updateTimelineShareData({
      title: thatopts.title, // 分享标题
      desc: thatopts.desc, // 分享描述
      link: thatopts.link, // 分享链接
      imgUrl: thatopts.imgUrl, // 分享图标
      success: function () {
        console.log('成功');
        // shareNewJobWithApiNewEvent();
      },
      cancel: function () {
        console.log('分享失败');
      },
    });
    // 分享给朋友
    wx.updateAppMessageShareData({
      title: thatopts.title, // 分享标题
      desc: thatopts.desc, // 分享描述
      link: thatopts.link, // 分享链接
      imgUrl: thatopts.imgUrl, // 分享图标
      success: function () {
        console.log('成功');
        // shareNewJobWithApiNewEvent();
      },
      cancel: function () {
        console.log('分享失败');
      },
    });
  });
  wx.error((err) => {
    console.log(err);
  });
}
 
export function getJsdkAndProduct(val, shareUrl) {
  const shareObj = {};
  shareObj.title = val.name;
  shareObj.desc = val.description;
  shareObj.imgUrl = val.icon;
  shareObj.link = shareUrl;
  const data = {
    appRefCode: config.appRefCode,
    url: window.location.href.split('#')[0],
  };
  MG.app.getWeChatApiSign(data).then((res) => {
    shareJs(res, shareObj);
  });
}
 
export function shareNewJobWithApiNewEvent(appRefCode, id) {
  const data = {
    appRefCode: appRefCode,
    type: 'View',
    sysType: 'App',
    data: '',
    event: 'shareCount',
    productId: id,
  };
  MG.job.newJobWithApiNewEvent(data).then((res) => {
    if (res) {
      window.location.href = urlDelP(location.href, 'key');
    }
  });
}
 
function urlDelP(url, name) {
  var urlArr = url.split('?');
  if (urlArr.length > 1 && urlArr[1].indexOf(name) > -1) {
    var query = urlArr[1];
    var obj = {};
    var arr = query.split('&');
    for (var i = 0; i < arr.length; i++) {
      arr[i] = arr[i].split('=');
      obj[arr[i][0]] = arr[i][1];
    }
    delete obj[name];
    // eslint-disable-next-line
    var urlte = urlArr[0] + '?' + JSON.stringify(obj).replace(/[\"\{\}]/g, '').replace(/\:/g, '=').replace(/\,/g, '&'); return urlte;
  } else {
    return url;
  }
}
 
export function getSharekey(url) {
  let obj = {};
  let urlStr = url.split('?')[1];
  if (url && urlStr) {
    let paramsArr = urlStr.split('&');
    for (let i = 0, len = paramsArr.length; i < len; i++) {
      let arr = paramsArr[i].split('=');
      obj[arr[0]] = arr[1];
    }
  }
  return obj;
}