import Vue from 'vue' import { appId } from '@/config/js-config' import { shareSDK } from '@/api/userApi/share' // import SHA1 from 'crypto-js/sha1' const dev = process.env.NODE_ENV Vue.prototype.$wxReady = async (callback, shareUrl) => { try { // console.log('当前页面地址:', url) // const nonceStr = Math.random() // const timestamp = Math.floor(Date.now() / 1000) const url = location.href console.log(shareUrl, location) const res = await shareSDK({ url: url, appId }) const wx = window.wx if (!wx) return // const signature = SHA1(`jsapi_ticket=${res.ticket}&noncestr=${nonceStr}×tamp=${timestamp}&url=${encodeURIComponent(url)}`).toString() wx.config({ debug: dev === 'development', // 开启调试模式,调用的所有 api 的返回值会在客户端 alert 出来,若要查看传入的参数,可以在 pc 端打开,参数信息会通过 log 打出,仅在 pc 端时才会打印。 appId: 'wx91c4152b60ca91a3', // 必填,公众号的唯一标识 timestamp: res.timestamp, // 必填,生成签名的时间戳 nonceStr: res.noncestr, // 必填,生成签名的随机串 signature: res.signature, // 必填,签名 jsApiList: ['updateAppMessageShareData', 'updateTimelineShareData', 'onMenuShareAppMessage'] // 必填,需要使用的 JS 接口列表 }) wx.ready(callback(wx)) wx.error(function (error) { console.log(error) throw error }) } catch (error) { if (dev === 'development') { console.warn('jssdk init error:' + error) } else { console.warn('jssdk init error') } } }