|
|
@@ -1,37 +1,45 @@
|
|
|
// 微信服务号分享功能
|
|
|
import wx from 'weixin-js-sdk'
|
|
|
import {getSignature} from "@/api";
|
|
|
-
|
|
|
+import { h5Url } from '@/common/config.js';
|
|
|
/**
|
|
|
* 初始化微信 JS-SDK
|
|
|
* @param {Object} config - 微信 JS-SDK 配置参数
|
|
|
+ * @returns {Promise} - 初始化成功返回 resolve,失败返回 reject
|
|
|
*/
|
|
|
export function initWechatSDK(config) {
|
|
|
- if (typeof wx === 'undefined') {
|
|
|
- console.error('微信 JS-SDK 未加载');
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- wx.config({
|
|
|
- debug: false,
|
|
|
- appId: config.appId,
|
|
|
- timestamp: config.timestamp,
|
|
|
- nonceStr: config.nonceStr,
|
|
|
- signature: config.signature,
|
|
|
- jsApiList: [
|
|
|
- 'updateAppMessageShareData',
|
|
|
- 'updateTimelineShareData',
|
|
|
- 'onMenuShareAppMessage',
|
|
|
- 'onMenuShareTimeline'
|
|
|
- ]
|
|
|
- });
|
|
|
-
|
|
|
- wx.ready(function() {
|
|
|
- console.log('微信 JS-SDK 初始化成功');
|
|
|
- });
|
|
|
-
|
|
|
- wx.error(function(res) {
|
|
|
- console.error('微信 JS-SDK 初始化失败:', res);
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ if (typeof wx === 'undefined') {
|
|
|
+ console.error('微信 JS-SDK 未加载');
|
|
|
+ reject(new Error('微信 JS-SDK 未加载'));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ wx.config({
|
|
|
+ debug: false,
|
|
|
+ appId: config.appId,
|
|
|
+ timestamp: config.timestamp,
|
|
|
+ nonceStr: config.nonceStr,
|
|
|
+ signature: config.signature,
|
|
|
+ jsApiList: [
|
|
|
+ 'updateAppMessageShareData',
|
|
|
+ 'updateTimelineShareData',
|
|
|
+ 'onMenuShareAppMessage',
|
|
|
+ 'onMenuShareTimeline',
|
|
|
+ 'launchMiniProgram'
|
|
|
+ ],
|
|
|
+ openTagList: ['wx-open-launch-weapp']
|
|
|
+ });
|
|
|
+
|
|
|
+ wx.ready(function() {
|
|
|
+ console.log('微信 JS-SDK 初始化成功');
|
|
|
+ resolve();
|
|
|
+ });
|
|
|
+
|
|
|
+ wx.error(function(res) {
|
|
|
+ console.error('微信 JS-SDK 初始化失败:', res);
|
|
|
+ reject(res);
|
|
|
+ });
|
|
|
});
|
|
|
}
|
|
|
|
|
|
@@ -48,9 +56,9 @@ export function configWechatShare(options) {
|
|
|
console.error('微信 JS-SDK 未加载');
|
|
|
return;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
const { title, desc, link, imgUrl } = options;
|
|
|
-
|
|
|
+
|
|
|
// 分享给朋友
|
|
|
wx.updateAppMessageShareData({
|
|
|
title: title,
|
|
|
@@ -64,7 +72,7 @@ export function configWechatShare(options) {
|
|
|
console.log('分享给朋友取消');
|
|
|
}
|
|
|
});
|
|
|
-
|
|
|
+
|
|
|
// 分享到朋友圈
|
|
|
wx.updateTimelineShareData({
|
|
|
title: title,
|
|
|
@@ -77,7 +85,7 @@ export function configWechatShare(options) {
|
|
|
console.log('分享到朋友圈取消');
|
|
|
}
|
|
|
});
|
|
|
-
|
|
|
+
|
|
|
// 兼容旧版本
|
|
|
wx.onMenuShareAppMessage({
|
|
|
title: title,
|
|
|
@@ -91,7 +99,7 @@ export function configWechatShare(options) {
|
|
|
console.log('分享给朋友取消(旧版本)');
|
|
|
}
|
|
|
});
|
|
|
-
|
|
|
+
|
|
|
wx.onMenuShareTimeline({
|
|
|
title: title,
|
|
|
link: link,
|
|
|
@@ -111,7 +119,8 @@ export function configWechatShare(options) {
|
|
|
*/
|
|
|
export async function handleServiceShare(shareData) {
|
|
|
// 这里可以根据实际需求,调用后端接口获取微信 JS-SDK 配置
|
|
|
- const res = await getSignature()
|
|
|
+ let url = `${h5Url}/`
|
|
|
+ const res = await getSignature({url:url})
|
|
|
// 假设已经获取到配置信息
|
|
|
const wxConfig = {
|
|
|
appId: res.data.appId, // 从后端获取
|
|
|
@@ -137,4 +146,37 @@ export async function handleServiceShare(shareData) {
|
|
|
icon: 'none',
|
|
|
duration: 2000
|
|
|
});
|
|
|
-}
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 处理微信服务号调整小程序
|
|
|
+ * @param {Object} shareData - 分享数据
|
|
|
+ */
|
|
|
+export async function handleServiceAdjustMiniProgram() {
|
|
|
+ // 这里可以根据实际需求,调用后端接口获取微信 JS-SDK 配置
|
|
|
+ let url = `${h5Url}/`
|
|
|
+ const res = await getSignature();
|
|
|
+ console.log(res)
|
|
|
+ // const res = {
|
|
|
+ // data:{
|
|
|
+ // appId:"wx9dc677bd41e82569",
|
|
|
+ // jsapi_ticket : "xN-5lpdNhLiE7IEBU_UcHiyJbIL_nALi9KlPocS0cgHRtlLg8pID873P8yRAP2bAEy5nvorNMX2FW7F-2eh0gg",
|
|
|
+ // nonceStr : "50784887-0393-401e-9933-94cd7185093d",
|
|
|
+ // signature : "855a95d6cefc0496302d05398276c6395a608184",
|
|
|
+ // timestamp: "1778206207",
|
|
|
+ // url: "https://city.baoxianzhanggui.com/fragrance/"
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // 假设已经获取到配置信息
|
|
|
+ const wxConfig = {
|
|
|
+ appId: res.data.appId, // 从后端获取
|
|
|
+ timestamp: res.data.timestamp, // 从后端获取
|
|
|
+ nonceStr: res.data.nonceStr, // 从后端获取
|
|
|
+ signature: res.data.signature // 从后端获取
|
|
|
+ };
|
|
|
+
|
|
|
+ // 初始化微信 JS-SDK
|
|
|
+ await initWechatSDK(wxConfig);
|
|
|
+ // 3. 生成抽奖按钮 HTML
|
|
|
+ //return `<wx-open-launch-weapp id="launch-btn" appid="wxab9634bf98628a03" path="${url}"><script type="text/wxtag-template"><style>.btn{padding:12px 24px;background:#07c160;color:#fff;border:none;border-radius:8px;font-size:16px;}</style><button class="btn">打开小程序指定页面</button></script></wx-open-launch-weapp>`;
|
|
|
+}
|