jsSdk.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import Vue from 'vue'
  2. import { appId } from '@/config/js-config'
  3. import { shareSDK } from '@/api/userApi/share'
  4. // import SHA1 from 'crypto-js/sha1'
  5. const dev = process.env.NODE_ENV
  6. Vue.prototype.$wxReady = async (callback, shareUrl) => {
  7. try {
  8. // console.log('当前页面地址:', url)
  9. // const nonceStr = Math.random()
  10. // const timestamp = Math.floor(Date.now() / 1000)
  11. const url = location.href
  12. console.log(shareUrl, location)
  13. const res = await shareSDK({ url: url, appId })
  14. const wx = window.wx
  15. if (!wx) return
  16. // const signature = SHA1(`jsapi_ticket=${res.ticket}&noncestr=${nonceStr}&timestamp=${timestamp}&url=${encodeURIComponent(url)}`).toString()
  17. wx.config({
  18. debug: dev === 'development', // 开启调试模式,调用的所有 api 的返回值会在客户端 alert 出来,若要查看传入的参数,可以在 pc 端打开,参数信息会通过 log 打出,仅在 pc 端时才会打印。
  19. appId: 'wx91c4152b60ca91a3', // 必填,公众号的唯一标识
  20. timestamp: res.timestamp, // 必填,生成签名的时间戳
  21. nonceStr: res.noncestr, // 必填,生成签名的随机串
  22. signature: res.signature, // 必填,签名
  23. jsApiList: ['updateAppMessageShareData', 'updateTimelineShareData', 'onMenuShareAppMessage'] // 必填,需要使用的 JS 接口列表
  24. })
  25. wx.ready(callback(wx))
  26. wx.error(function (error) {
  27. console.log(error)
  28. throw error
  29. })
  30. } catch (error) {
  31. if (dev === 'development') {
  32. console.warn('jssdk init error:' + error)
  33. } else {
  34. console.warn('jssdk init error')
  35. }
  36. }
  37. }