You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
1.5 KiB
JavaScript
68 lines
1.5 KiB
JavaScript
import api from "@/api/index.js";
|
|
|
|
export default {
|
|
async init(jsApiList, openTagList) {
|
|
try {
|
|
const jWeixin = require('@/static/h5/jweixin-sdk');
|
|
let url = window.location.href.split("#")[0];
|
|
|
|
if (process.env.NODE_ENV == 'development') url = 'https://saasdemo.byin.vip/pageh5'
|
|
|
|
const configData = await getConfigData(url);;
|
|
|
|
try {
|
|
return await new Promise(res => {
|
|
configureWeChat(jWeixin, configData, jsApiList, openTagList, res)
|
|
})
|
|
} catch (error) {
|
|
console.log(error);
|
|
}
|
|
|
|
} catch (error) {
|
|
console.error('初始化错误:', error);
|
|
throw error;
|
|
}
|
|
}
|
|
}
|
|
|
|
async function getConfigData(url) {
|
|
|
|
// 从后端API获取微信H5相关信息
|
|
const res = await api.common.wechatH5({
|
|
url,
|
|
is_page: 1
|
|
});
|
|
console.log({
|
|
res
|
|
});
|
|
|
|
// 实现获取 wechatConfig 数据的逻辑
|
|
return {
|
|
app_id: res.data.appid,
|
|
timestamp: res.data.timestamp,
|
|
noncestr: res.data.noncestr,
|
|
signature: res.data.signature,
|
|
}
|
|
}
|
|
|
|
function configureWeChat(jWeixin, configData, jsApiList, openTagList, res) {
|
|
jWeixin.config({
|
|
debug: false,
|
|
appId: configData.app_id, // 必填,公众号的唯一标识
|
|
timestamp: configData.timestamp, // 必填,生成签名的时间戳
|
|
nonceStr: configData.noncestr, // 必填,生成签名的随机串
|
|
signature: configData.signature, // 必填,签名
|
|
jsApiList: jsApiList,
|
|
openTagList: openTagList
|
|
});
|
|
|
|
jWeixin.ready(() => {
|
|
// 处理初始化成功
|
|
res(jWeixin)
|
|
});
|
|
|
|
jWeixin.error((err) => {
|
|
console.log('jWeixin 错误:', err);
|
|
// 处理初始化错误
|
|
});
|
|
} |