详细问题描述(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)
[内容]
在苹果手机分享到微信和微信支付过程中(只测试了微信),如果网络切换环境(比如刚好从家里出来或者刚好到家),APP就不会执行分享和支付后的回调函数。
重现步骤
[步骤]
1.打开APP,调用分享(或者支付),分享到微信(或用微信支付),当停留在微信界面时,将网络环境从4G切换到wifi(或者从wifi到4G),再分享成功(支付成功)后返回到APP
[结果]回调函数不执行
[期望]执行回调函数
[如果语言难以表述清晰,可以拍一个视频或截图,有图有真相]
IDE运行环境说明
[HBuilder 或 HBuilderX]
[IDE版本号]HBuilderX 1.4.1.20181228
[windows版本号]windows 7
[mac版本号]
App运行环境说明
[Android版本号]
[iOS版本号]12.1.3
[手机型号]iphonex7 和 iphone X
[模拟器型号]
附件
[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]
[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]
[安装包]
分享代码
share.send(msg, function() {
nativetoast('分享成功', 1, 'short');
}, function(e) {
console.log("分享到\"" + share.description + "\"失败: " + e.code + " - " + e.message);
});
支付代码
plus.payment.request(channel,xhr.responseText,function(result){
nativetoast('付款成功', 1, 'short');
return callback();
},function(error){
console.log("支付失败:" + error.code);
});
联系方式
[QQ]41063786
切换网络环境,没有回调:https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxgetvideo?msgid=5607051041144910768&skey=%40crypt_80e5d065_0cc861a4eaa49ff0a53d2e0129e809e3
保持网络环境,有回调提示:https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxgetvideo?msgid=7432380261921099674&skey=%40crypt_80e5d065_0cc861a4eaa49ff0a53d2e0129e809e3
原因找到了,是因为我在父页面监听网络,如果切换则刷新当前页。
document.addEventListener( "netchange", function() {
if(plus.networkinfo.getCurrentType()!=plus.networkinfo.CONNECTION_NONE){
network = true;
plus.webview.currentWebview().reload();
}else{
network=false;
}
});
去掉plus.webview.currentWebview().reload();这句就正常了。感谢DCloud技术支持
k***@126.com (作者)
版本号 1.9.9.56749,安卓测试正常,iOS出现这个问题
2019-01-09 13:13
DCloud_IOS_XTY
请提供个可以复现问题demo
2019-01-09 15:52
k***@126.com (作者)
我这里的几个苹果手机都有这种情况:当APP分享到微信,在微信界面时,切换网络环境,再分享成功后跳转回到APP,是不会提示分享成功的。支付也是这个情况,导致微信支付了,APP调用不到支付成功。
2019-01-09 16:45
DCloud_IOS_XTY
未重现,请提供下ipa并拍摄下重现视频,以免理解有偏差
2019-01-09 18:06
k***@126.com (作者)
回复 DCloud_IOS_XTY:视频已经提供,原因已经找到,谢谢你的回复
2019-01-10 09:53