import wx from 'weixin-js-sdk' import axios from './axios' import $qxueyou from '@/config/qxueyou.js' import { isWeixin, isMobile } from '@/utils/UA.js' let newFeature = false let oldShare = ['onMenuShareTimeline', 'onMenuShareAppMessage', 'onMenuShareQQ', 'onMenuShareQZone'] let newShare = ['updateTimelineShareData', 'updateAppMessageShareData'] let weixinFlag = isWeixin let mobileFlag = isMobile let channel = weixinFlag && mobileFlag ? 'wx_pub' : 'wx_pub_qr' let isWxpub = 'wx_pub'.includes(channel) /** * 微信获取签名 * @param {*} toRoute 目标路由 */ function getWxSignature(toRoute) { if (!weixinFlag) { return false } axios.get('/system/wx/js/signature', { params: { url: location.href } }).then(res => { if (!res || !res.data) { return false } let result = res.data.data || {} wx.config({ // 微信配置 debug: false, appId: result.appId, timestamp: result.timestamp, nonceStr: result.nonceStr, signature: result.signature, jsApiList: [ ...(newFeature ? newShare : oldShare), // 'chooseWXPay', 'chooseImage', 'getLocalImgData' ], openTagList: ['wx-open-launch-app'] }) // wx.ready(function () { // initShareOption(toRoute) // }) wx.error(function (res) { console.log(res) }) }) } function chooseImage(){ return new Promise((resolve) => { wx.chooseImage({ count: 1, sizeType: ['compressed'], sourceType: ['camera'], success: (res) => { if (res && res.localIds) { getLocalImgData(res.localIds[0]).then((localData) => { resolve(localData) }) } else { store.commit('snack/error', `微信上传图片失败:${res}`) } }, fail:function(e) { store.commit('snack/error', `微信上传图片异常:${JSON.stringify(e)}`) } }) }) } function getLocalImgData(localId){ return new Promise((resolve) => { wx.getLocalImgData({ localId: localId, success: function (res) { resolve(res.localData) }, fail:function(e) { store.commit('snack/error', `微信获取图片异常:${JSON.stringify(e)}`) } }) }) } export { getWxSignature, chooseImage }