应用场景:
用户在公众号分享文章后进行监控,比如分享送红包、发消息等回调
约束:
用户必须关注公众号,否则无法监控。
1、需要分享的页面要获取jsapi访问对象:
WebClientInfo w=WebClientInfo.getInstance();
String url=w.getRequestURL();
view.addObject("ticket", new JsApiTicketService(MessageUtil.PATIENT_USERTYPE).getTicket(url));
2、在jsp页面:引用vshare.jsp
<%
WeixinConfig shareconfig = SpringUtil.getContext().getBean(WeixinConfig.class);
String share_server = shareconfig.getServer();
%>
引用微信JS
<script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
//打开微信右上角的分享:
document.addEventListener('WeixinJSBridgeReady', function onBridgeReady(){
WeixinJSBridge.call('showOptionMenu');//显示右上角
});
wx.config({
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: '${ticket.appId}', // 必填,公众号的唯一标识
timestamp:'${ticket.timestamp}' , // 必填,生成签名的时间戳
nonceStr: '${ticket.nonceStr}', // 必填,生成签名的随机串
signature: '${ticket.signature}',// 必填,签名,见附录1
jsApiList: ["onMenuShareTimeline","onMenuShareAppMessage"] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});
//标题,链接,图片,副标题
var weixin = function (title,link,imgurl,desc,shareCallback){
wx.ready(function(){
//分享给朋友
wx.onMenuShareAppMessage({
title:title,
desc: desc,
imgUrl: imgurl,
link : link,
success: function (){
//回调方法
if(shareCallback!=''){
shareCallback();
}
},
cancel: function (){
}
});
//分享朋友圈
wx.onMenuShareTimeline({
title:title,
desc: desc,
imgUrl: msgimg,
link : link,
success : function(){
//回调方法
if(shareCallback!=''){
shareCallback();
}
},
cancel : function(){
}
});
});
};
//页面调用事件:
weixin(title,link,imgurl,desc,shareCallback);
function shareCallback(){
//回调函数
}