微信内部分享失败。改为页面跳转,分享成功
//加载微信配置
var sharelink = "";
var host = window.location.host;
var wxdata=new Object();
$.ajax({
type : 'get',
url : jsRoot + "/market/macts/getjsapiTicket",
async:true,
contentType: "application/x-www-form-urlencoded; charset=gbk",
data : {
"url":location.href.split('#')[0]
},
dataType : 'json',
success : function(data, status) {
var rstate = data.result;
if(rstate == "0"){
var ticket = data.message.ticket;
host="http://"+host;
var code = encodeURIComponent(host+jsRoot + "/chucwx/couponCores?reqType=1");
// sharelink = "https://open.weixin.qq.com/connect/oauth2/authorize?appid="+ ticket.appId + "&redirect_uri=" + code+ "&response_type=code&scope=snsapi_base&state=1#wechat_redirect";
sharelink = host+jsRoot+"/chucwx/welcome?appid="+ ticket.appId + "&redirect_uri=" + code;
wxdata.atitle="领券中心";
wxdata.sharelink=sharelink;
wxdata.imgurl=host+jsRoot+"/chucwx/resources/img/quan.jpg";
wxdata.shareinfo="你的小伙伴给你分享了一份优惠!";
wxdata.desc = "海量优惠,等你来领!";
wx.config({
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: ticket.appId, // 必填,公众号的唯一标识
timestamp: ticket.timestamp, // 必填,生成签名的时间戳
nonceStr: ticket.nonceStr, // 必填,生成签名的随机串
signature: ticket.signature,// 必填,签名,见附录1
jsApiList : [
'openLocation',
'onMenuShareAppMessage',
'onMenuShareTimeline'
]
});
}else{
//alert(data.error);
}
},
error : function(data, status, e) {
alert('获取数据失败..');
}
});
wx.ready(function(){
wx.onMenuShareTimeline({
title: wxdata.atitle,
link: wxdata.sharelink,
imgUrl: wxdata.imgurl,
success: function () {
// 用户确认分享后执行的回调函数
// alert('分享到朋友圈成功');
},
cancel: function () {
// 用户取消分享后执行的回调函数
// alert('你没有分享到朋友圈');
}
});
wx.onMenuShareAppMessage({
title: wxdata.atitle,
desc: wxdata.desc,
link: wxdata.sharelink,
imgUrl: wxdata.imgurl,
trigger: function (res) {
// 不要尝试在trigger中使用ajax异步请求修改本次分享的内容,因为客户端分享操作是一个同步操作,这时候使用ajax的回包会还没有返回
},
success: function (res) {
// alert('分享给朋友成功');
},
cancel: function (res) {
// alert('你没有分享给朋友');
},
fail: function (res) {
alert(JSON.stringify(res));
}
});
});
welcome jsp页面
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<c:set var="rootPath" value="${pageContext.request.contextPath}" />
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html ng-app="mainApp">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport"
content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
<title></title>
</head>
<body>
</body>
<script>
var redirect_uri=getQueryString("redirect_uri");
var appid=getQueryString("appid");
var url="https://open.weixin.qq.com/connect/oauth2/authorize?appid="+appid+"&redirect_uri="+encodeURIComponent(redirect_uri)+"&response_type=code&scope=snsapi_base&state=0#wechat_redirect";
//alert(redirect_uri)
window.location.href= url;
window.location.reload;
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;
}
</script>
</html>