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
|
}
|