• 微信分享代码封装


    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

  • 相关阅读:
    苏宁11.11:系统拆分的一些经验谈
    双11超级工程—阿里巴巴数据库技术架构演进
    阿里的Json解析包FastJson使用
    JSONObject、JSONArray、Map、JavaBean的相互转换
    method.invoke(...)反射点
    Spring中的CharacterEncodingFilter
    数组去重Demo引出的思考
    HDU 5095--Linearization of the kernel functions in SVM【模拟】
    GUI编程及文件对话框的使用
    Android中的指纹识别
  • 原文地址:https://www.cnblogs.com/LLX8/p/11004862.html
Copyright © 2020-2023  润新知