java微信公众号分享功能

前言

微信公众号自定义分享功能,可附带图片、标题、内容


提示:以下是本篇文章正文内容,下面案例可供参考

一、微信公众号对网页域名进行授权,把MP_verify_*.txt文件放在项目的根目录下

二、编写后台获取凭证接口


    @PostMapping("/signature")
    public String shareInfo(@RequestParam("url") String url) 
        if (url.contains("localhost") || url.contains("192.168")) {
            return error("本地环境不分享");
        }
        WxJsapiSignature sign = null;
        Map<String, Object> map = new HashMap<>();
        WechatUser user = userInfo();
        map.put("desc", "分享链接上的内容")
		// @Autowired
		// private WxMpService wxMpService;
        sign =wxMpService.createJsapiSignature(url);
        map.put("sign", sign);
          //获取分享信息

        map.put("title", "标题");
        map.put("url", url);
        map.put("imgUrl", "分享链接上的图片");
        return success("获取成功", map)
    }

三、网页JS编写

$(function () {
    var url = decodeURIComponent(location.href.split('#')[0]);//当前页面的地址
    data.ajaxPost("上面编辑的接口", "url="+url, function (res) {
        if (res.code == 200) {
            var sign=res.body.sign;
            var share=res.body;
            wx.config({
                debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
                appId: sign.appId, // 必填,公众号的唯一标识
                timestamp: sign.timestamp, // 必填,生成签名的时间戳
                nonceStr: sign.nonceStr, // 必填,生成签名的随机串
                signature: sign.signature,// 必填,签名
                jsApiList: [
                    'onMenuShareTimeline',
                    'onMenuShareAppMessage',
                    'onMenuShareQQ',
                    'onMenuShareWeibo'
                ]
            });

            wx.ready(function () {
                var shareurl = share.url;
                var title = share.title;
                var desc = share.desc;
                var imgUrl = share.imgUrl;
                // 2. 分享接口
                // 2.1 监听“分享给朋友”,按钮点击、自定义分享内容及分享结果接口

                wx.onMenuShareAppMessage({
                    title: title,
                    desc: desc,
                    link: shareurl,
                    imgUrl: imgUrl,
                    success: function () {
                        view.shareCount(0);
                    }
                });
                // 2.2 监听“分享到朋友圈”按钮点击、自定义分享内容及分享结果接口

                wx.onMenuShareTimeline({
                    title: title,
                    link: shareurl,
                    imgUrl: imgUrl,

                    success: function (res) {
                        view.shareCount(1);
                    },
                    fail: function (res) {
                    }
                });
                // 2.3 监听“分享到QQ”按钮点击、自定义分享内容及分享结果接口
                wx.onMenuShareQQ({
                    title: title,
                    desc: desc,
                    link: shareurl,
                    imgUrl: imgUrl,
                    success: function (res) {
                        view.shareCount(2);
                    },
                });
                wx.error(function (res) {
                    //alert(JSON.stringify(res));
                });
            });
        }
    })
})
//异步请求
var data = {
    ajaxPost: function (url, data, callback) {
        $.ajaxSetup({
            async: true
        });
        jQuery.ajax({
            url: url,
            data: data,
            type: "POST",
            dataType: "JSON",
            beforeSend: function () {
            },
            success: function (res) {
                if (arguments.length == 3) {
                    callback(res);
                } else {
                    layer.msg(res.message);
                }
            }
            , error: function () {
                layer.msg("请求失败");
            },
            complete: function () {
            }
        });
    },


四、页面引入j

	引入jquery的js
	<script src="/js/jquery-1.12.4.min.js"></script>
	引入微信的js
	<script src="https://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>\
	引入刚刚编写的js
	<script src="/js/share.js"></script>
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值