vue 封裝微信分享

/*----------------------------share.js----------------------------*/

import wx from 'weixin-js-sdk'
import qs from 'qs'
import {Toast} from 'mint-ui'
import axios from "axios";
axios.defaults.headers.common["Content-Type"] ="application/json; charset=UTF-8";
axios.defaults.headers.common["clientType"] = "H5";
axios.defaults.withCredentials = false;

/**
 *分享
 * @param _this 當前域
 * @param shareTitle 標題
 * @param shareUrl 鏈接
 * @param shareImg 圖片
 * @param shareDesc 描述
 */
export const  commonShare = (_this, shareTitle, shareUrl, shareImg, shareDesc) => {
    let url = location.href.split('#')[0];
    let params = qs.stringify({
        shareUrl: url     //shareUrl是根據你的後臺需要的參數名
    });
    axios.post("後臺接口",params).then(data=>{
            wx.config({
                debug: false, // 開啓調試模式,調用的所有api的返回值會在客戶端alert出來,若要查看傳入的參數,可以在pc端打開,參數信息會通過log打出,僅在pc端時纔會打印。
                appId: data.data.appId, // 必填,公衆號的唯一標識
                timestamp: data.data.timestamp, // 必填,生成簽名的時間戳
                nonceStr: data.data.noncestr, //注意:服務端簽名和前端參數名大小寫不一致
                signature: data.data.signature, // 必填,簽名,見附錄1
                jsApiList: ["onMenuShareTimeline", "onMenuShareAppMessage"] // 必填,需要使用的JS接口列表,所有JS接口列表見附錄2
            });
            wx.ready(function () {
                wx.onMenuShareTimeline({
                title: shareTitle, // 分享標題
                link: shareUrl, // 分享鏈接,該鏈接域名或路徑必須與當前頁面對應的公衆號JS安全域名一致
                imgUrl: shareImg, // 分享圖標
                success: function () {
                    // 用戶確認分享後執行的回調函數
                    Toast('分享成功!!!');
                },
                cancel: function () {
                    // 用戶取消分享後執行的回調函數
                    Toast('取消分享!!!');
                }
                });
                wx.onMenuShareAppMessage({
                title: shareTitle, // 分享標題
                desc: shareDesc, // 分享描述
                link: shareUrl, // 分享鏈接,該鏈接域名或路徑必須與當前頁面對應的公衆號JS安全域名一致
                imgUrl: shareImg, // 分享圖標
                type: "", // 分享類型,music、video或link,不填默認爲link
                dataUrl: "", // 如果type是music或video,則要提供數據鏈接,默認爲空
                success: function () {
                    // 用戶確認分享後執行的回調函數
                    Toast('分享成功!!!');
                },
                cancel: function () {
                    // 用戶取消分享後執行的回調函數
                    Toast('取消分享!!!');
                }
                });
            });
        }).catch(err=>{
            console.log("自定義分享失敗"+err);
        })
    
};

/*----------------------------main.js----------------------------*/

//設置爲全局
import {commonShare} from './components/utils/share'
Vue.prototype.commonShare = commonShare;

/*----------------------------使用----------------------------*/

this.commonShare(this,"111",window.location.href,"333","444");
//分享的圖片路徑最好不要亂寫,不要本地圖片

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章