share.js 3.2 KB
//初始化config信息
import httpServer from '../utils/jsonp';
import wx from "weixin-js-sdk";

const _weChatInterface = '//action.yoho.cn/api/share/getSignPackage';//签名等相关配置,yoho公众号
export default class {

    wxSignature = fun => {
        httpServer(_weChatInterface + "?pageurl=" + encodeURIComponent(location.href.split('#')[0])).then((json) => {
            if (!json.appId) {
                return false;
            } else {
                let _appId = json.appId.toString();
                let _timestamp = json.timestamp;
                let _nonceStr = json.nonceStr.toString();
                let _signature = json.signature.toString();
                wx.config({
                    debug: false,
                    appId: _appId,
                    timestamp: _timestamp,
                    nonceStr: _nonceStr,
                    signature: _signature,
                    jsApiList: [
                        'checkJsApi',
                        'onMenuShareTimeline',
                        'onMenuShareAppMessage',
                        'onMenuShareQQ',
                        'onMenuShareWeibo',
                        'hideMenuItems',
                        'showMenuItems',
                        'hideAllNonBaseMenuItem',
                        'showAllNonBaseMenuItem',
                        'translateVoice',
                        'startRecord',
                        'stopRecord',
                        'onVoiceRecordEnd',
                        'playVoice',
                        'pauseVoice',
                        'stopVoice',
                        'uploadVoice',
                        'onVoicePlayEnd',
                        'downloadVoice',
                        'chooseImage',
                        'previewImage',
                        'uploadImage',
                        'downloadImage',
                        'getNetworkType',
                        'openLocation',
                        'getLocation',
                        'hideOptionMenu',
                        'showOptionMenu',
                        'closeWindow',
                        'scanQRCode',
                        'chooseWXPay',
                        'openProductSpecificView',
                        'addCard',
                        'chooseCard',
                        'openCard'
                    ]
                });
                fun && setTimeout(fun,500);
                return true;
            }
        })
    };

    wxShare = shareDate => {
        this.wxSignature(function(){
            let share_data = shareDate || {
                title: '',
                imgUrl: '',
                desc: '',
                link: document.location.href,
                success: function () {
                }
            };
            wx.ready(function () {
                // 2.1 “分享给朋友”
                wx.onMenuShareAppMessage(share_data);
                // 2.2 “分享到朋友圈”
                wx.onMenuShareTimeline(share_data);
                // 2.3 “分享到QQ”
                wx.onMenuShareQQ(share_data);
                // 2.4 “分享到微博”
                wx.onMenuShareWeibo(share_data);
            });
        })

    }
}