import store from '../store'; import { wechatConfig, share } from '@/api/wx'; // 保存wx对象 let weixinObj = require('jweixin-module'); // 保存分享数据 let shareData = ''; // 保存注册返回appId数据 let appId = ''; //微信登录 /** * @param {string} 当前页面地址信息 */ export function loginWinxin() { let pages, page, path; try { pages = getCurrentPages(); // 获取跳转前页面 page = pages[pages.length - 1]; // 获取跳转前路由地址 path = page.route; } catch (e) { console.log(e); } // 判断是否在登录页 if (path != 'pages/redirect/redirect') { setTimeout((e) => { weixinObj.ready(() => { // 调用 try { console.log(shareData); weixinSq(shareData, path); } catch (e) { console.log(e); //TODO handle the exception } }); weixinObj.error((e) => { console.log(e); }) }, 10) } }; // 微信授权登录 function weixinSq(data, path) { // 微信授权后跳转页面 try { let ul = encodeURIComponent(store.state.baseURL + store.state.urlFile + '/pages/redirect/redirect'); // 打开微信授权页面 let url = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' + appId + '&redirect_uri=' + ul + '&response_type=code&scope=snsapi_userinfo&state=' + new Date().getTime() + '#wechat_redirect'; window.location.href = url; } catch (e) { console.log(e); } }; // 微信注册 export function weixindata(config) { //注册微信信息 let weixinObj = require('jweixin-module'); // 保存微信对象到全局仓库 store.commit('setWeiChatObj', weixinObj) wechatConfig({ url: window.location.href }) .then(({ data }) => { // 保存appId store.commit('setWeiChatInfo', data) appId = data.appId // 微信信息配置 weixinObj.config({ debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: data.appId, // 必填,企业号的唯一标识,此处填写企业号corpid timestamp: data.timestamp, // 必填,生成签名的时间戳 nonceStr: data.nonceStr, // 必填,生成签名的随机串 signature: data.signature, // 必填,签名,见附录1 jsApiList: data.jsApiList // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); weixinObj.ready((e) => { if (shareData == '') { share({}).then(({ data }) => { shareData = data.data shareLoad(config) }); } else { shareLoad(config) } }) }) .catch(e => { console.log(e); }); } // 加载分享数据 function shareLoad(config) { let mess; if (config) { mess = { link: config.link, // 分享链接 imgUrl: config.imgUrl, desc: config.desc, title: config.title, success: config.success, fail: config.fail } } else { let url = window.location.href + '?spread=' + store.state.userInfo.uid; url = url.replace(/[\?,&]{0,1}from=singlemessage/g, ''); mess = { title: shareData.title, link: url, // 分享链接 imgUrl: shareData.img, // 分享图标 desc: shareData.synopsis, success: function() { // uni.showModal({ // title: '分享', // content: '分享成功', // showCancel: false, // success: res => { // console.log('分享成功回调接口'); // }, // fail: () => {}, // complete: () => {} // }); } } } // 获取仓库数据 // 分享好友 weixinObj.updateAppMessageShareData(mess); // 分享朋友圈 weixinObj.updateTimelineShareData(mess) } export default { weixinObj, shareData, appId }