shareWechat.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import request from '@/common/request'
  2. import jweixin from '@/common/jweixin'
  3. export default {
  4. is_weixin: function() {
  5. var ua = navigator.userAgent.toLowerCase();
  6. if (ua.match(/MicroMessenger/i) == "micromessenger") {
  7. return true;
  8. } else {
  9. return false;
  10. }
  11. },
  12. share: function(data, url, id, state) {
  13. url = url ? url : window.location.href;
  14. if (!this.is_weixin()) {
  15. return false
  16. }
  17. request.post("/api/common/getJssdkConfig", {
  18. url: url
  19. }).then(res => {
  20. console.log(res)
  21. if (res.code == 200) {
  22. if (state) {
  23. url = url + "?up_id=" + id
  24. }else{
  25. url = url + "&up_id=" + id
  26. }
  27. jweixin.config({
  28. debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
  29. appId: res.data.appId, // 必填,公众号的唯一标识
  30. timestamp: res.data.timestamp, // 必填,生成签名的时间戳
  31. nonceStr: res.data.nonceStr, // 必填,生成签名的随机串
  32. signature: res.data.signature, // 必填,签名
  33. jsApiList: res.data.jsApiList // 必填,需要使用的JS接口列表
  34. })
  35. jweixin.ready(function() {
  36. let shareData = {
  37. title: data.title, // 分享标题
  38. desc: data.desc, // 分享描述
  39. link: url, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
  40. imgUrl: data.imgUrl, // 分享图标
  41. success: function(res) {
  42. console.log(res)
  43. },
  44. cancel: function(err) {
  45. console.log(err)
  46. }
  47. }
  48. jweixin.updateAppMessageShareData(shareData)
  49. jweixin.updateTimelineShareData(shareData)
  50. })
  51. jweixin.error(function(res) {
  52. // ...
  53. console.log(res)
  54. });
  55. }
  56. }).catch(err => {
  57. console.log(err)
  58. })
  59. }
  60. }