jssdk.js 1.3 KB

12345678910111213141516171819202122232425262728293031
  1. import Vue from 'vue'
  2. import { appId, jsApiList } from '@/configs/jssdk'
  3. const dev = process.env.EVN
  4. Vue.prototype.$wxReady = async function (callback, apiList = []) {
  5. try {
  6. const url = window.location.href.split('#')[0]
  7. // console.log('当前页面地址:', url)
  8. const res = await Vue.prototype.$http.api.initWxConfig({ url, appId })
  9. const wx = window.wx
  10. if (!wx) return
  11. wx.config({
  12. debug: false && dev === 'development', // 开启调试模式,调用的所有 api 的返回值会在客户端 alert 出来,若要查看传入的参数,可以在 pc 端打开,参数信息会通过 log 打出,仅在 pc 端时才会打印。
  13. appId: appId, // 必填,公众号的唯一标识
  14. timestamp: res.data.timestamp, // 必填,生成签名的时间戳
  15. nonceStr: res.data.noncestr, // 必填,生成签名的随机串
  16. signature: res.data.signature, // 必填,签名
  17. jsApiList: [...jsApiList, ...apiList], // 必填,需要使用的 JS 接口列表
  18. })
  19. wx.ready(callback(wx))
  20. wx.error(function (error) {
  21. throw error
  22. })
  23. } catch (error) {
  24. if (dev === 'development') {
  25. console.warn('jssdk init error:' + error.msg || error.message)
  26. } else {
  27. console.warn('jssdk init error')
  28. }
  29. }
  30. }