vue實現微信分享

vue實現微信分享

效果圖

在這裏插入圖片描述

前提: 公衆號相關配置

參考微信公衆平臺

使用

  • 安裝 npm i weixin-js-sdk -S
  • 在需要組件上引入: import wx from 'weixin-js-sdk’
  • 以下相關代碼塊
mounted() {
	//測試
    this.shareWx();
},

methods: {
   shareWx() {
       // alert(encodeURI(location.href.split('#')[0]));
       //處理url
       let params = {
           url: decodeURIComponent(location.href.split('#')[0])
       }
       //發送請求
       this.axios.getShareSdk(params).then((response) =>{
           console.log("123", response);
           // wx.config(response.data);  //如後臺配置好相關的參數, 可以直接使用

			//配置參數
           wx.config({
               debug: false, // 開啓調試模式,調用的所有api的返回值會在客戶端alert出來,若要查看傳入的參數,可以在pc端打開,參數信息會通過log打出,僅在pc端時纔會打印。
               appId: response.appId, // 必填,公衆號的唯一標識
               timestamp: response.timestamp, // 必填,生成簽名的時間戳
               nonceStr: response.nonceStr, // 必填,生成簽名的隨機串
               signature: response.signature,// 必填,簽名,見附錄1
               jsApiList: ['onMenuShareAppMessage', 'onMenuShareTimeline', 'updateAppMessageShareData', 'updateTimelineShareData'] // 必填,需要使用的JS接口列表,所有JS接口列表見附錄2
           });



           /**
            * 通過ready接口處理成功驗證
            * config信息驗證成功後會執行ready方法
            * 需在用戶可能點擊分享按鈕前就先調用
            */
           wx.ready(function() { //
               let tel = getStore('account');  //從本地獲取                         
                let imgs = 'https://common.cnblogs.com/images/wechat.png',
                   links = '域名訪問地址/?#/share?invite='+ tel; // 分享鏈接
               let shareData = {
                   title: '努力學習',
                   desc: '好的東西我都想與你一起分享~',//這裏請特別注意是要去除html
                   link: links,
                   imgUrl: imgs,
               };

				//調試,需單獨處理回調使用
               // wx.updateAppMessageShareData({ // 分享給朋友  ,在config裏面填寫需要使用的JS接口列表,然後這個方法纔可以用 
               //     title: '這裏是標題1', // 分享標題
               //     desc: 'This is a test!', // 分享描述
               //     link: '域名訪問地址/#/share?invite='+ tel, // 分享鏈接,該鏈接域名或路徑必須與當前頁面對應的公衆號JS安全域名一致
               //     imgUrl: '', // 分享圖標
               //     success() {
               //         // 用戶確認分享後執行的回調函數
               //         alert("分享給朋友成功1");
               //     },
               //     cancel() {
               //         // 用戶取消分享後執行的回調函數
               //         alert("分享給朋友取消1");
               //     },
               //     fail(res) {
               //         // alert(JSON.stringify(res));
               //     }
               // });
               // wx.updateTimelineShareData({ //分享朋友圈
               //     shareData,  //直接調用配置好的參數
               //     success() {
               //         // 用戶確認分享後執行的回調函數
               //         alert("成功2");
               //     },
               //     cancel() {
               //         // 用戶取消分享後執行的回調函數
               //         alert("取消2");
               //     },
               //     fail(res) {
               //         // alert(JSON.stringify(res));
               //     }
               // });

				
				//兼容新老版本接口, 如不需要處理邏輯情況下, 調試好可以直接使用
               if(wx.onMenuShareAppMessage){ //微信文檔中提到這兩個接口即將棄用,故判斷
                   wx.onMenuShareAppMessage(shareData);//1.0 分享到朋友
                   wx.onMenuShareTimeline(shareData);//1.0分享到朋友圈
               }else{
                   wx.updateAppMessageShareData(shareData);//1.4 分享到朋友
                   wx.updateTimelineShareData(shareData);//1.4分享到朋友圈
               }

           });
           wx.error(res =>{//通過error接口處理失敗驗證
               // config信息驗證失敗會執行error函數
               console.log(res);
           });
       })
   }
}

遇到問題

Q: 安卓設備中微信會自動截取 #號 後面的內容, 導致無法分享
A: 在 #號前面加 ?號

links = '域名訪問地址/?#/share?invite='+ tel; // 分享鏈接
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章