微信分享接口分享完成后在某些苹果设备上不能正常执行回调
- 我写了一个H5项目,现在已经在线上,发现使用ip7 plus ip x等手机在分享给朋友后可以正常完成回调然后执行跳转动作,但是如果分享到朋友圈的话,分享完成后(朋友圈分享成功)不能正常的执行回调完成跳转的事件,请问有哪位遇到这古怪的问题吗?
- 以下附上相关代码
<script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
$(function () {
var bodyH = $("body").height();
var candyH = $(".candy").height();
var bottomH = $(".bottom").height();
var h = bodyH - (bodyH - candyH) - bottomH;
$(".candy .container").css("min-height",h+"px");
wx.config({!! $shareConfig['js_sdk_config'] !!});
wx.ready (function () {
// 微信分享的数据
var shareData = {
"imgUrl" : '{{$shareConfig['imgUrl']}}', // 分享显示的缩略图地址
"link" : '{{$shareConfig['link']}}', // 分享地址
"desc" : '{{$shareConfig['desc']}}', // 分享描述
"title" : '{{$shareConfig['title']}}', // 分享标题
success : function () {
// 分享成功可以做相应的数据处理
console.log('share success');
var _candy_id = '{{$candy->id ?? false}}';
var _user_id = '{{$user->id ?? false}}';
var _openid = '{{$user->openid ?? false}}';
var _post_json = {candy_id:_candy_id,user_id:_user_id,openid:_openid};
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
type: "POST",
url: "{{url('/share')}}",
data: _post_json,
dataType: "json",
success: function(data){
if (data.code === '1024'){
document.getElementById("redirect").click();
}
}
});
}
};
wx.onMenuShareTimeline (shareData);
wx.onMenuShareAppMessage (shareData);
});
wx.error(function(res){
// config信息验证失败会执行error函数,如签名过期导致验证失败,
// 具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,
//对于SPA可以在这里更新签名。
alert("好像出错了!!");
});
});
</script>
注意:
<body>
<a href="{{url('/signUp', array('abbreviation'=>$candy->abbreviation))}}" style="visibility: hidden;" id="redirect"></a>
</body>
document.getElementById("redirect").click();
这行代码是为了兼容部分手机不能正常跳转的问题,取代windows.location.href在某些场景下不难使用。
请各位先生指点。。。。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
感谢以上各位的出谋划策,闷头调试了一天,重要找到了一个不知道为什么解决了此问题的解决方案,那就是加一个定时器!!!
setTimeout(call_function, time)
大家在此处加一个定时器就可以解决这个问题!!!
你这传的代码只有看到你调用了
wx.onMenuShareTimeline (shareData);
wx.onMenuShareAppMessage (shareData);
根本不知道做了什么
可以在微信开发者工具中查看分享配置成功没有,工具上面也可以查看分享回调的!
分享做调整了,具体看分享功能调整
你好!我也遇到和你同样 的问题,现在尝试添加延迟测试看看!谢谢