// 微信分享配置 import HaloTokenConfig from '@/config/token.config.js' import {jsonToUrlParams2} from '@/utils/url.params.js' import utils from '@/utils/index.js' export const haloWxShareMixin = { computed: { haloWxShareData() { const configs = this.$tm.vx.getters().getConfigs?.shareConfig; if(!configs) return {}; configs.imageUrl = utils.checkImageUrl(configs.imageUrl) return configs } }, //#ifdef MP-WEIXIN onShareAppMessage(res) { return { ...this.haloWxShareData, success: res => { } } }, //#endif /* 分享到微信好友 */ onShareAppMessage(res) { const promise = new Promise(resolve => { setTimeout(() => { resolve({ title: this.haloWxShareData.title, path: this.haloWxShareData.path, }) }, 2000) }) return { title: this.haloWxShareData.title, path: '', promise } }, // 分享到朋友圈-这里封装不够,在页面还要声明一次,否则是拿不到参数的,被分享者在朋友圈打开链接是空的 onShareTimeline: function () { return { title: this.haloWxShareData.title, query: {}, imageUrl: this.haloWxShareData.imageUrl, } }, methods: { // 设置分享信息(需要在页面调用) fnSetWxShareConfig(config = {}) { let currentRoutes = getCurrentPages(); // 获取当前打开过的页面路由数组 let currentRoute = currentRoutes[currentRoutes.length - 1].route; //获取当前页面路由(分销思路,分享者点开使用的小程序将获取到分享者的id) let sharePath = currentRoutes if (config.params) { const URLParams = config.params ? jsonToUrlParams2(config.params) : {}; sharePath += URLParams } let _config = Object.assign({}, { path: sharePath, copyLink: HaloTokenConfig.BASE_API, query: {} }, config) uni.$tm.vx.commit('setWxShare', _config); } } }