import { defineStore } from "pinia"; import wx from "weixin-js-sdk"; import { getWeChatSdkData } from "@/api/index"; import axios from "axios"; interface IWxConfig { appId: string; timestamp: number; nonceStr: string; signature: string; [key: string]: any; } interface IWxShareData { title: string; desc: string; link: string; imgUrl: string; success?: () => void; } interface IShareStore { inited: boolean; url: string; redirectUrl: string; shareData: IWxShareData; } export const useShareStore = defineStore("share", { state: (): IShareStore => ({ inited: false, url: import.meta.env.VITE_SHARE_DOMAIN, redirectUrl: import.meta.env.VITE_SHARE_REDIRECT, shareData: { title: "中证参考", desc: "天下事 秒知道", link: import.meta.env.VITE_SHARE_DOMAIN, imgUrl: import.meta.env.VITE_SHARE_DOMAIN + "/static/share-default.jpg", }, }), actions: { // 初始化jssdk配置 initWxConfig(data?: IWxShareData) { const url = window.location.href.split("#")[0]; data = data || this.shareData; if (this.inited) { this.wxReady(data); return; } axios({ url: "https://cankao.cs.com.cn/apih5/wechat/share", method: "get", params: { url }, responseType: "json", }).then((res: any) => { const data: IWxConfig = res.data.data; // console.log("🚀 ~ getWeChatSdkData ~ data:", data); uni.showToast({ title: data.appId }) wx.config({ debug: true, appId: data.appId, timestamp: data.timestamp, nonceStr: data.nonceStr, signature: data.signature, jsApiList: [ "updateAppMessageShareData", "updateTimelineShareData", "onMenuShareTimeline", "onMenuShareAppMessage", ], }); this.wxReady(this.shareData); wx.error((err) => { console.log("🚀 ~ err:", err); }); }); // getWeChatSdkData({ url }).then((res: any) => { // const data: IWxConfig = res.data; // console.log("🚀 ~ getWeChatSdkData ~ data:", data); // wx.config({ // debug: false, // appId: data.appId, // timestamp: data.timestamp, // nonceStr: data.nonceStr, // signature: data.signature, // jsApiList: [ // "updateAppMessageShareData", // "updateTimelineShareData", // "onMenuShareTimeline", // "onMenuShareAppMessage", // ], // }); // this.wxReady(this.shareData); // wx.error((err) => { // console.log("🚀 ~ err:", err); // }); // }); }, // wx.ready wxReady(data: IWxShareData) { // console.log("output >>>>> wxShare -- this.inited", this.inited); if (this.inited) { this.wxUpdateShare(data); } else { wx.ready(() => { this.inited = true; this.wxUpdateShare(data); }); } }, // 修改转发内容 wxUpdateShare(data: IWxShareData) { /** * 获取“分享给朋友”及“分享到QQ”按钮点击状态及自定义分享内容接口(新) */ wx.updateAppMessageShareData({ title: data.title, desc: data.desc, link: data.link, imgUrl: data.imgUrl, success: function () { }, }); /** * 获取“分享到朋友圈”及“分享到QQ空间”按钮点击状态及自定义分享内容接口 */ wx.updateTimelineShareData({ title: data.title, link: data.link, imgUrl: data.imgUrl, success: function () { }, }); /** * 获取“分享给朋友”按钮点击状态及自定义分享内容接口 */ wx.onMenuShareAppMessage({ title: data.title, desc: data.desc, link: data.link, imgUrl: data.imgUrl, success: function () { }, cancel: function () { }, }); /** * 获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 */ wx.onMenuShareTimeline({ title: data.title, link: data.link, imgUrl: data.imgUrl, success: function () { }, cancel: function () { }, }); }, }, });