zoukankan      html  css  js  c++  java
  • 微信公众号开发授权和分享模块脚本封装

          在引用jquery和微信JSSDK的基础上封装一个脚本 实现大量的H5网页分享授权

    1.脚本

      

    /*分享模块*/
    var shareData = {
        title: '分享主标题',//分享标题
        desc: '分享副标题',//分享描述
        link: location.href,//分享链接,默认是当前页
        imgUrl: 'http://wx.qqauto.cn/html/2018/1/images/theme1.png'//分享图片,必须绝对路径
    };
    
    function WxShare(options) {
        //默认参数       
        shareData = $.extend(shareData, options);
        wx.onMenuShareTimeline({
            title: shareData.title, // 分享标题
            desc: shareData.desc, // 分享描述
            link: shareData.link, // 分享链接
            imgUrl: shareData.imgUrl, // 分享图标
            success: function () {
            },
            cancel: function () {
            }
        });
        wx.onMenuShareAppMessage({
            title: shareData.title, // 分享标题
            desc: shareData.desc, // 分享描述
            link: shareData.link, // 分享链接
            imgUrl: shareData.imgUrl, // 分享图标
            success: function () {
            },
            cancel: function () {
                // 用户取消分享后执行的回调函数
            }
        });
    }
    ;
    
    (function ($) {
        var jurl = location.href;
        if (jurl.indexOf('#'))
            jurl = jurl.split('#')[0];
        //jurl = encodeURIComponent(jurl);   
    
        $.ajax({
            url: '/CommonAPI/JSSDKHelper/15',
            data: { url: jurl },
            async: false,
            success: function (d) {
                if (d && d.success) {
                    wx.config({
                        debug: false,
                        appId: d.appId,
                        timestamp: d.timestamp,
                        nonceStr: d.nonceStr,
                        signature: d.signature,
                        jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage']
                    });
                    wx.ready(function () {
                        WxShare();
                    });
                }
            }
        });
    })(jQuery)
    
    /*授权模块*/
    var _Mvar = {
        myGroup: '11',
        gid: 479,
        id: 15,
        // gid: 6,
        // id: 13,
        wxNum: "",
        username: "",
        phone: "",
        nickname: "",
        headimgurl: "",
        domain: '',
        data: '',
        msg: '可能是网络原因,请刷新页面重试!',
        cantest: '',
        jsoncallback: '',
        go: 0,
        uid: 0,
        cantest: '',
        wxid: '',
        wxName: '',
        myid: '',
        shareText: '福州万国长城哈弗猜车',
        shareText1: '',
        shareText2: '',
        prize: '万精',
        chance: 0,
        times: 0,
        num: 0,
        isShare: 0,
        loadImg: 'http://wx.qqauto.cn/html/upcoin/power/22/images/img2.png'
    };
    
    
    function getQueryString(name) {
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
        var r = window.location.search.substr(1).match(reg);
        if (r != null)
            return unescape(r[2]);
        return null;
    }
    
    _Mvar.wxNum = getQueryString("uid");
    var hostname = location.hostname;
    var myUrl = "http://" + hostname + location.pathname + "?uid=" + _Mvar.wxNum + '&gid=' + _Mvar.gid;
    function init2() {
        $.ajax({
            type: "get",
            url: "http://wx.qqauto.cn/CommonApi/OAuth2?id=" + _Mvar.id + "&gid=" + _Mvar.gid + "&myUrl=" + encodeURIComponent(myUrl) + "&_r=" + Math.random(),
            dataType: "json",
            async: false,
            success: function (data) {
                if (data.success == true) {
                    _Mvar.wxid = data.wxnum;
                    _Mvar.nickname = data.nickname;
                    _Mvar.headimgurl = data.headimg;
                } else {
                    window.location.href = data.msg;
                }
            },
            timeout: 15000,
            error: function (xhr, type) {
                alert("网络异常,请刷新重试。");
            }
        });
    }
    var isLocal = hostname && hostname.indexOf('wx.qqauto.cn') > -1;
    if (isLocal)
        init2();
    else {
        _Mvar.domain = 'http://192.168.5.43:8022',
       _Mvar.cantest = 'can',
       _Mvar.wxid = '',
       _Mvar.jsoncallback = '?jsoncallback=?';
        _Mvar.nickname = '花生';
        _Mvar.gid = 14;
        _Mvar.id = 13;
    }

    2.创建测试DEMO

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title></title>
        <script src="/Scripts/jquery-1.10.2.js"></script>
        <script language="javascript" type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
        <script src="/Scripts/yhz.js"></script>
    
    </head>
    <body>
        <button id="btn1">修改主副标题</button>
        <button id="btn2">修改链接地址Link</button>
    </body>
    </html>
    <script>
        $(function () {
            //修改主副标题
            $("#btn1").click(function () {
                shareData.title = "哈哈哈哈";
                shareData.desc = "嘿嘿";
                WxShare(shareData);
            })
            //修改链接为百度
            $("#btn2").click(function () {
                shareData.link = location.href + "?test=2";
                WxShare(shareData);
            })
        })
    </script>

    3.分享

    ps:引用的层级

      <script src="/Scripts/jquery-1.10.2.js"></script>
        <script language="javascript" type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
        <script src="/Scripts/yhz.js"></script>


  • 相关阅读:
    音乐播放器
    对象的单体模式和面向对象
    箭头函数详解及this指向
    ES6的基础语法
    房贷灵活计算器
    [译文] SQL JOIN,你想知道的应该都有
    [Perl] 删除数组中重复元素
    [Qt] 自定义 滚动条 样式
    nodejs之异步思想
    导致人生失败的31种原因(转自csdn博客)
  • 原文地址:https://www.cnblogs.com/CallmeYhz/p/8889140.html
Copyright © 2011-2022 走看看