!微信分享只有打包上傳服務(wù)器才會(huì)生效
//wx-sdk
import api from '../api/api'
const jsApiList = ['checkJsApi', 'onMenuShareTimeline', 'onMenuShareAppMessage']
export const WxSdk = {
getWeChatAuthorizationAndShare: function (WxShareData) {
var _url = location.href.split('#')[0]
console.log(api)
api.wxSDk({ //從后端獲取簽名
shareUrl: _url
}).then(res => {
console.log(res.data)
// wxSDk(_url).then(res => {
if (res.code == 0) {
var overtime = res.data.expire_seconds + '000' //獲取到的過期時(shí)間
//防止signature過期 兩小時(shí)過期一次 獲取后臺(tái)給的秒數(shù)重新請(qǐng)求一次
// let timer = null
// clearTimeout(timer) //清除定時(shí)器 (防止每次彈窗創(chuàng)建一次新的定時(shí)器)
setTimeout(() => {
WxSdk.getWeChatAuthorizationAndShare(WxShareData);
}, overtime)
// 請(qǐng)求接口成功后勾给,
// 配置config
wx.config({
// 開啟調(diào)試模式時(shí),調(diào)用的所有api的返回值會(huì)在客戶端alert出來,若要查看傳入的參數(shù),可以在pc端打開蝠引,參數(shù)信息會(huì)通過log打出纸淮,僅在pc端時(shí)才會(huì)打印。
debug: false,
// 后臺(tái)返回之前獲取的appId
appId: res.data.appId,
// 必填,生成簽名的時(shí)間戳
timestamp: res.data.timestamp,
// 必填力奋,生成簽名的隨機(jī)串
nonceStr: res.data.nonceStr,
// 必填终畅,簽名籍胯,見附錄1
signature: res.data.signature,
// 必填,需要使用的JS接口列表离福,所有JS接口列表見附錄3
jsApiList: [
'checkJsApi',
'onMenuShareTimeline', //1.0分享到朋友圈
'onMenuShareAppMessage', //1.0 分享到朋友
'onMenuShareQQ',
'onMenuShareQZone',
'translateVoice',
'updateAppMessageShareData', //1.4 分享到朋友 QQ
'updateTimelineShareData', //1.4分享到朋友圈杖狼、Qzone
]
});
// 微信檢查接口列表
wx.checkJsApi({
jsApiList: jsApiList, // 需要檢測(cè)的JS接口列表
success: function (res) {
// console.log(res);
}
});
// 頁面加載完成后用戶就有可能調(diào)用微信的分享,所以當(dāng)頁面ready 完后就加載
wx.ready(function () {
var ShareTimelineData = {
title: WxShareData.title,
// 分享鏈接妖爷,該鏈接域名或路徑必須與當(dāng)前頁面對(duì)應(yīng)的公眾號(hào)JS安全域名一致
link: WxShareData.linkurl,
desc: WxShareData.desc,
// 分享圖標(biāo)
imgUrl: WxShareData.img,
// 用戶確認(rèn)分享后執(zhí)行的回調(diào)函數(shù)
success: function (res) {
console.log('分享回調(diào)函數(shù)');
},
// 用戶取消分享后執(zhí)行的回調(diào)函數(shù)
cancel: function () {
console.log('取消分享回調(diào)函數(shù)');
}
}
// 分享到朋友圈
wx.onMenuShareTimeline(ShareTimelineData);
//分享到朋友圈1.4
wx.updateTimelineShareData(ShareTimelineData);
// 分享好友
wx.onMenuShareAppMessage(ShareTimelineData);
//分享qq
wx.onMenuShareQQ(ShareTimelineData);
//分享空間
wx.onMenuShareQZone(ShareTimelineData);
// 分享好友1.4
wx.updateAppMessageShareData(ShareTimelineData);
// 分享多個(gè)地址時(shí)蝶涩,可統(tǒng)一傳入?yún)?shù),如 wx.onMenuShareAppMessage(shareData)
});
// 微信預(yù)加載失敗回調(diào)
wx.error(function (res) {
console.log(res);
});
}
})
.catch(err => {
console.log(err)
});
}
};
//one.vue 組件
import { WxSdk } from '../commonJs/wx-sdk.js'; //引入
methods:{
wxShare() {// 微信分享sdk
var title = this.stateDetailDtat.postVo.title;
var desc = this.stateDetailDtat.postVo.content;
let url = window.location;
let full_url = url.origin + url.pathname + '#' + 'shareStateDetails?postId=' + this.emitStateId.postId;
var WxShareData = {
title: title,
desc: desc,
img: this.stateDetailDtat.postVo.imgList[0] + '?x-oss-process=image/resize,m_fixed,h_200,w_200',
linkurl: full_url //分享鏈接
};
var _url = location.href.split('#')[0];
WxSdk.getWeChatAuthorizationAndShare(WxShareData);
},
}