import { wechatshareData } from '../../api/wxMiniprogram.js';
import wx from 'weixin-js-sdk';
import Vue from 'vue'
const isIOS = !!window.navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)
const ajaxShare = (to) => {
return new Promise((resolve,reject) => {
const url = isIOS ? window.location.href.split('#')[0] : 'https://hlwtest.picchealth.com/gxcpwap/#' + to.fullPath
const Body = {
head: wechatshareData.head,
body:{
url: url,
}
}
wechatshareData.getPost(Body).then(response => {
const data = response.data.tradeMap.data.body
if(data){
if(data.state === '00'){
const mshopConfigData = {
appId: data.respInfo.appId,
timestamp: data.respInfo.timestamp,
nonceStr: data.respInfo.nonceStr,
signature: data.respInfo.signature
}
resolve({
flag: true,
config: mshopConfigData
})
}else {
resolve({
flag: false,
})
}
}else{
reject('系统繁忙,请稍后重试。');
}
}).catch((error) => {
console.log(error, 'wechatshareData');
reject(error);
})
})
};
const configWXMenu = (value, callback) => {
let mshopConfigData
if (isIOS) {
mshopConfigData = JSON.parse(window.sessionStorage.getItem(`mshopIOSConfigData`))
} else {
mshopConfigData = JSON.parse(window.sessionStorage.getItem(`mshop${value.to.name}ConfigData`))
}
wx.config({
debug: true,
appId: mshopConfigData.appId,
timestamp: mshopConfigData.timestamp,
nonceStr: mshopConfigData.nonceStr,
signature: mshopConfigData.signature,
jsApiList: value.apiList
})
wx.error(function(res) {
console.log('微信权限验证失败:', res);
});
callback && callback()
}
const shareWXMenu = (to) => {
configWXMenu(
{
to,
apiList: ['updateAppMessageShareData','updateTimelineShareData']
},
() => {
wx.ready(() => {
const mshopShareData = JSON.parse(window.sessionStorage.getItem(`mshop${to.name}ShareData`))
if(mshopShareData) {
console.log(window.location.href,'页面链接')
wx.updateAppMessageShareData({
title: mshopShareData.shareTitle,
desc: mshopShareData.shareText,
link: window.location.href,
imgUrl: mshopShareData.shareIcon,
success: function () {
console.log('成功分享朋友h5');
},
cancel: function () {
console.log('分享取消');
},
})
wx.updateTimelineShareData({
title: mshopShareData.shareTitle,
desc: mshopShareData.shareText,
link: window.location.href,
imgUrl: mshopShareData.shareIcon,
type: 'link',
dataUrl: '',
success: function () {
console.log('成功分享朋友圈h5');
},
cancel: function () {
console.log('分享取消');
},
})
}
})
}
)
}
export const wechatShare = async function (productName, to) {
let mshopConfigData
if (isIOS) {
mshopConfigData = JSON.parse(window.sessionStorage.getItem(`mshopIOSConfigData`))
} else {
mshopConfigData = JSON.parse(window.sessionStorage.getItem(`mshop${to.name}ConfigData`))
}
if (mshopConfigData) {
shareWXMenu(to)
return
}
const data = await ajaxShare(to);
console.log(data,'分享返回数据');
if(data.flag === true){
if(data.config){
if(isIOS){
window.sessionStorage.setItem(`mshopIOSConfigData`, JSON.stringify(data.config))
}else{
window.sessionStorage.setItem(`mshop${to.name}ConfigData`, JSON.stringify(data.config))
}
shareWXMenu(to)
}
}
};
打开调试config:ok updateAppMessageShareData:ok updateTimelineShareData:ok,wx.ready也能成功回调,右上角三个点没有分享朋友和朋友圈选项,是进入页面初始化掉的分享方法,会闪一下选项然后就没有,苹果安卓都是这样,打印输出的也返回了,这个是页面链接 https:
你好,微信开发者工具控制台一步一步Debug,提供Debug截图