微信分享等一系列sdk功能封裝
阿新 • • 發佈:2019-02-18
首先安裝sdk,
npm install –save weixin-js-sdk
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 介面簽名校驗工具 ,可以檢驗簽名是否正確。
我第一次是失敗的。然後讓後臺檢測下修改後,之後就成功了