微信js-sdk分享详解及demo实例


关于微信自定义分享的链接、标题、描述、图片都未生效问题详解 (点击查看)


具体步骤

1. 绑定域名

先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。

点击查看大图
这里写图片描述
注:最多可绑定五个域名或路径


2. 引入JS文件

在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.2.0.js

<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
<script src="https://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>

3. 通过config接口注入权限验证配置

所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用。

wx.config({
    debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
    appId: '', // 必填,公众号的唯一标识
    timestamp: , // 必填,生成签名的时间戳
    nonceStr: '', // 必填,生成签名的随机串
    signature: '',// 必填,签名,见附录1
    jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});

4. 通过ready接口处理成功验证

wx.ready(function(){
    //config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
});

5. 通过error接口处理失败验证

wx.error(function(res){
    //config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
});

demo实例

<script src="https://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
   <script type="text/javascript">
       wx.config({
        debug: false,
        appId: '${appId!}',
        timestamp: ${timestamp!},
        nonceStr: '${nonceStr!}',
        signature: '${signature!}',
        jsApiList: [
            'checkJsApi',
            'onMenuShareTimeline',
            'onMenuShareAppMessage',
            'onMenuShareQQ',
            'onMenuShareWeibo',
            'hideMenuItems',
               'getLocation'
        ]
    });
    var shareTitle = "更多优惠,尽在聚惠";
    var shareDesc = "大回馈,花少钱享优质生活,更多优惠商品,就等你喊朋友一起来选!";
    var currentLink = window.location.href;
    var shareLink = currentLink <#if u??> + (currentLink.indexOf("?") > -1 ? ("&u=" + "${u!}" + "&t=" + "${t!}" + "&o=" + "${o!}" + "&s=" + "${s!}") : ("?u=" + "${u!}" + "&t=" + "${t!}" + "&o=" + "${o!}" + "&s=" + "${s!}"))</#if>;
           shareLink = shareLink <#if !city??> + (shareLink.indexOf("?") > -1 ? ("&city=" + "深圳") : ("?city=" + "深圳"))</#if>;
    var shareImgUrl = "${IMGPATH!}/images/banner2.png";
    var shareGid = "";

	wx.ready(function () {
    	//分享给朋友
        wx.onMenuShareAppMessage({
        	title: shareTitle,
            desc: shareDesc,
            link: shareLink,
            imgUrl: shareImgUrl,
            success: function (res) {
       			shared(shareLink, "friend", shareGid);
       	    },
           	fail: function (res) {
             	alert(JSON.stringify(res));
           	}
        });
    	//分享到朋友圈
        wx.onMenuShareTimeline({
        	title: shareTitle,
            desc: shareDesc,
            link: shareLink,
            imgUrl: shareImgUrl,
            success: function (res) {
       			shared(shareLink, "Timeline", shareGid);
       	    },
           	fail: function (res) {
             	alert(JSON.stringify(res));
           	}
        });
      	//分享到QQ
        wx.onMenuShareQQ({
        	title: shareTitle,
            desc: shareDesc,
            link: shareLink,
            imgUrl: shareImgUrl,
            success: function (res) {
       			shared(shareLink, "QQ", shareGid);
       	    },
           	fail: function (res) {
             	alert(JSON.stringify(res));
           	}
        });
      	//分享到腾讯QQ
        wx.onMenuShareWeibo({
        	title: shareTitle,
            desc: shareDesc,
            link: shareLink,
            imgUrl: shareImgUrl,
            success: function (res) {
       			shared(shareLink, "Weibo", shareGid);
       	    },
           	fail: function (res) {
             	alert(JSON.stringify(res));
           	}
        });
      	//分享到QZone
        wx.onMenuShareQZone({
        	title: shareTitle,
            desc: shareDesc,
            link: shareLink,
            imgUrl: shareImgUrl,
            success: function (res) {
       			shared(shareLink, "QZone", shareGid);
       	    },
           	fail: function (res) {
             	alert(JSON.stringify(res));
           	}
        });
    });

    function shared(url, type, gid){
    	var rUrl = basePath + "/share/add?type=" + type + "&url=" + encodeURI(url);
    	if(!!gid) {
    		rUrl += "&gid=" + gid;
    	}
    	$.ajax({
            type: "GET",
            url: rUrl,
            dataType: "json",
            success: function(rs){
            	//alert("分享成功");
            }
    	});
    }
   </script>

微信接口文档地址


成功调用后debug返回

1. 分享给朋友

这里写图片描述


2. 分享到朋友圈

这里写图片描述


3. 分享成功

这里写图片描述


4. 取消分享

这里写图片描述

posted @ 2022-07-20 18:17  猫老板的豆  阅读(731)  评论(0编辑  收藏  举报