微信分享代码封装

wxShare.js

(function(){
    var wxShare = function(opts){
        var defaults = {
            getWxConfigUrl: '',         // 获取微信接口权限url
            orDebug: false,             // 是否开启调试模式
            title: '',                  // 分享标题
            desc: '',                   // 分享描述
            wxUrl: '',                  // 参与签名的url
            link: '',                   // 分享链接
            imgUrl: '',                 // 分享图标
            success: function(){},      // 用户确认分享后执行的回调函数
            cancel: function(){}        // 用户取消分享后执行的回调函数
        };

        var _opts = $.extend(defaults, opts);

        // 获取微信权限
        $.ajax({
            url: _opts['getWxConfigUrl'],
            type: 'POST',
            dataType: 'json',
            data: {share_url: _opts['wxUrl']},
        })
        .done(function(res) {
            if(typeof res == 'object'){
                // 通过config接口注入权限验证配置
                wx.config({
                    // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
                    debug: _opts['orDebug'],
                    // 必填,公众号的唯一标识
                    appId: res.appId,
                    // 必填,生成签名的时间戳
                    timestamp: res.timestamp,
                    // 必填,生成签名的随机串
                    nonceStr: res.nonceStr,
                    // 必填,签名,见附录1
                    signature: res.signature,
                    // 必填,需要使用的JS接口列表
                    jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage', 'onMenuShareQQ']
                });
                // 处理config验证成功或失败
                _wxReady(res.url);
            }else{
                console.log('获取微信接口权限失败!');
            }
        })
        .fail(function() {
            console.log("获取微信接口权限失败!");
        });

        // 处理config验证成功或失败
        var _wxReady = function(urls){
            // wxConfig验证成功处理
            wx.ready(function(){

                // 分享到朋友圈
                wx.onMenuShareTimeline({
                    title: _opts['title'],
                    link: _opts['link'],
                    imgUrl: _opts['imgUrl'],
                    success: _opts['success'],
                    cancel: _opts['cancel']
                });

                // 分享给朋友
                wx.onMenuShareAppMessage({
                    title: _opts['title'],
                    desc: _opts['desc'],
                    link: _opts['link'],
                    imgUrl: _opts['imgUrl'],
                    // type: '', // 分享类型,music、video或link,不填默认为link
                    // dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
                    success: _opts['success'],
                    cancel: _opts['cancel']
                });

                // 分享到QQ
                wx.onMenuShareQQ({
                    title: _opts['title'],
                    desc: _opts['desc'],
                    link: _opts['link'],
                    imgUrl: _opts['imgUrl'],
                    success: _opts['success'],
                    cancel: _opts['cancel']
                });
            });

            // wxConfig验证失败返回函数
            wx.error(function(res){
                console.log(res,'wxConfig验证失败')
            });
        };
    };

    window.wxShare = wxShare;

})();

调用:

//判断是否微信内置浏览器
if(ua.match(/MicroMessenger/i) == 'micromessenger'){
        // 微信分享
        new wxShare({
            getWxConfigUrl: "../advice/getWxConfig",
            title: '送你68元红包,助攻你的618',
            desc: '会员神券日,来抢61.8元无门槛!',
            wxUrl: thisUrl,
            link: thisUrl,
            // imgUrl: "../js/sales/activity618/images/20190606154315.png",
            imgUrl:"http://www.800pharm.com/shop/js/sales/activity618/images/20190606154315.png",
            success:function(){
                console.log("分享成功");
            },
            cancel:function(){
                console.log("分享失败");
            }
        });
    }

完整代码解释 请移步  https://github.com/lianglixiong/wechat.js

猜你喜欢

转载自www.cnblogs.com/LLX8/p/11004862.html