LLX8

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

分类:

技术点:

相关文章: