背景
在vue中使用jssdk微信分享
weixin-js-sdk mint-ui需要安裝npm install weixin-js-sdk mint-ui --save
mixins/wechat.js
//weixin-js-sdk應用
const wx = require('weixin-js-sdk')
import { Toast } from 'mint-ui'
export default {
methods: {
wechatShare(info) {
// 判斷蘋果手機
let _url = ''
if (window.__wxjs_is_wkwebview === true) {
_url = window.location.href.split('#')[0] || window.location.href
} else {
_url = window.location.href
}
// 通路背景接口擷取微信參數
this.$store
.dispatch('GetWxParam', { url: encodeURIComponent(_url) })
.then(res => {
wx.config({
debug: false,
appId: res.data.appId, // 必填,公衆号的唯一辨別
timestamp: res.data.timestamp, // 必填,生成簽名的時間戳
nonceStr: res.data.nonceStr, // 必填,生成簽名的随機串
signature: res.data.signature, // 必填,簽名,見附錄1
jsApiList: [
'previewImage',
'hideAllNonBaseMenuItem',
'showMenuItems',
'onMenuShareTimeline',
'onMenuShareAppMessage',
'chooseWXPay'
] // 必填,需要使用的 JS 接口清單,所有JS接口清單見附錄2
})
})
.catch(err => {
console.log(err)
})
wx.ready(() => {
const share_title = info.title
const share_desc = info.desc
const share_link = info.link
const share_img = info.img
wx.showOptionMenu()
wx.onMenuShareTimeline({
title: share_title, // 分享标題
link: share_link, // 分享連結
imgUrl: share_img, // 分享圖示
success: function() {
Toast('已成功分享到朋友圈')
},
cancel: function() {
Toast('已取消分享')
}
})
wx.onMenuShareAppMessage({
title: share_title, // 分享标題
desc: share_desc, // 分享描述
link: share_link, // 分享連結
imgUrl: share_img, // 分享圖示
success: function() {
Toast('已成功分享給您的朋友')
},
cancel: function() {
Toast('已取消分享')
}
})
})
}
}
}
使用方法
import wxShare from '@/mixins/wechat' //引用
export default {
mixins: [wxShare], //
methods: {
setShare() {
const shareInfo = {
title: `羽絨服低至199元!`,
desc: `7月26日-8月3日,年中限時特惠,售完即止`,
link: window.location.href,
img: '.../logo.jpg'
}
// mixins
this.wechatShare(shareInfo)
},
},
created(){
// 設定
this.setShare()
}
}
來源:
https://segmentfault.com/a/1190000015999815