首先安裝sdk,
npm install –save weixin-js-sdk
新建share.js文件(我這裏只寫了分享朋友跟朋友圈,如果需要其他的功能可以參考微信開發文檔,在jsApiList接口添加新的)
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115
import api from '../../api/api' // 分享api
import wx from 'weixin-js-sdk'
export const shareTitle = '分享標題'
export const shareUrl = '分享的鏈接'
export const shareImg ='分享的圖片' //這個圖片需要加上域名
export const shareDesc = '分享的描述'
export const commonShare = (_this, shareTitle, shareUrl, shareImg, shareDesc) => {
let url = window.location.href.split('#')[0]
let data = {
url: url
}
api.shareSDK(data).then(res => {
let data = res.data.data
wx.config({
debug: false, // 開啓調試模式,調用的所有api的返回值會在客戶端alert出來,若要查看傳入的參數,可以在pc端打開,參數信息會通過log打出,僅在pc端時纔會打印。
appId: data.appid, // 必填,公衆號的唯一標識
timestamp: String(data.timestamp), // 必填,生成簽名的時間戳
nonceStr: data.noncestr, // 必填,生成簽名的隨機串
signature: data.signature, // 必填,簽名,見附錄1
jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage'] // 必填,需要使用的JS接口列表,所有JS接口列表見附錄2
})
wx.ready(function () {
wx.onMenuShareTimeline({
title: shareTitle, // 分享標題
link: shareUrl, // 分享鏈接,該鏈接域名或路徑必須與當前頁面對應的公衆號JS安全域名一致
imgUrl: shareImg, // 分享圖標
success: function () {
// 用戶確認分享後執行的回調函數
alert('分享成功!!!')
},
cancel: function () {
// 用戶取消分享後執行的回調函數
alert('取消分享!!!')
}
})
wx.onMenuShareAppMessage({
title: shareTitle, // 分享標題
desc: shareDesc, // 分享描述
link: shareUrl, // 分享鏈接,該鏈接域名或路徑必須與當前頁面對應的公衆號JS安全域名一致
imgUrl: shareImg, // 分享圖標
type: '', // 分享類型,music、video或link,不填默認爲link
dataUrl: '', // 如果type是music或video,則要提供數據鏈接,默認爲空
success: function () {
// 用戶確認分享後執行的回調函數
alert('分享成功!!!')
},
cancel: function () {
// 用戶取消分享後執行的回調函數
alert('取消分享!!!')
}
})
})
}).catch(err => {
console.log(err)
})
}
然後在組件裏引入
import {commonShare, shareTitle, shareUrl, shareImg, shareDesc} from "../assets/js/share";
commonShare(this, shareTitle, shareUrl, shareImg, shareDesc);
這裏後面四個參數在組件裏可以自己傳參,或者用share.js裏面聲明好的默認參數。
如果是統一內容的那麼直接在share.js裏面寫默認參數。然後在組件裏引入。
shareUrl 如果項目是hash模式的那麼用這個
let shareUrl = window.location.href.split('#')[0] + '#' + window.location.href.split('#')[1]
可能有些朋友到這裏還有些懵,這裏說下詳細流程:
首先你需要先獲得用戶微信授權,然後用過傳url給後臺獲得簽名等一系列參數。
通過config接口注入權限驗證配置,然後進行後面一系列操作。
可能注入權限會出現報錯情況
https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign
這個是微信 JS 接口簽名校驗工具 ,可以檢驗簽名是否正確。
我第一次是失敗的。然後讓後臺檢測下修改後,之後就成功了