mixin.js 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. const wx = require('weixin-js-sdk');
  2. const config = require('@/static/config.js');
  3. export default {
  4. install(Vue){
  5. Vue.mixin({
  6. data(){
  7. return {
  8. }
  9. },
  10. onLoad() {
  11. this.signJsapiTicket();
  12. },
  13. methods:{
  14. async signJsapiTicket(){
  15. let url = location.href.split('#')[0]
  16. let parmas = {
  17. url: url,
  18. }
  19. let self = this;
  20. let res = await this.$myRequest({
  21. url: '/wechat/signJsapiTicket',
  22. data: parmas,
  23. method:"GET",
  24. });
  25. if(res.data.success){
  26. let single = res.data.single;
  27. wx.config({
  28. debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
  29. appId: config.appid, // 必填,公众号的唯一标识
  30. timestamp: single.timestamp, // 必填,生成签名的时间戳
  31. nonceStr: single.nonceStr, // 必填,生成签名的随机串
  32. signature: single.signature, // 必填,签名
  33. jsApiList: ["updateAppMessageShareData","updateTimelineShareData",'showMenuItems'] // 必填,需要使用的JS接口列表
  34. });
  35. wx.ready(function() {
  36. });
  37. wx.error(function(res) {
  38. // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
  39. });
  40. }
  41. },
  42. config(title,desc,link,imgUrl){
  43. wx.showMenuItems({
  44. menuList: [ "menuItem:share:appMessage","menuItem:share:timeline"] // 要显示的菜单项,所有menu项见附录3
  45. });
  46. wx.updateAppMessageShareData({ //分享给朋友
  47. title: title, // 分享标题
  48. desc: desc, // 分享描述
  49. link: link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
  50. imgUrl: imgUrl, // 分享图标
  51. success: function() {
  52. // 设置成功
  53. }
  54. });
  55. wx.updateTimelineShareData({ //分享到朋友圈
  56. title: title, // 分享标题
  57. link: link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
  58. imgUrl: imgUrl, // 分享图标
  59. success: function() {
  60. // 设置成功
  61. }
  62. });
  63. }
  64. }
  65. })
  66. }
  67. }