162 lines
4.2 KiB
TypeScript
162 lines
4.2 KiB
TypeScript
|
|
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);
|
|||
|
|
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);
|
|||
|
|
});
|
|||
|
|
});
|
|||
|
|
// 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 () {},
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
});
|