d***@yunfanda.com
d***@yunfanda.com
  • 发布:2020-11-12 11:33
  • 更新:2021-11-05 13:31
  • 阅读:1783

【报Bug】 ios 和某些 安卓手机会出现 长时间不打开app 再次打开后会出现请求超时的问题

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

HBuilderX类型: 正式

HBuilderX版本号: 2.9.3

手机系统: 全部

手机厂商: 苹果

页面类型: vue

打包方式: 云端

项目创建方式: HBuilderX

App下载地址或H5⽹址: 安卓:https://android.myapp.com/myapp/detail.htm?apkName=com.yunfanda.gravitation&ADTAG=mobile ioshttps://apps.apple.com/cn/app/%E4%B8%87%E6%9C%89%E5%BC%95%E5%8A%9B-%E6%95%99%E8%82%B2%E7%89%88/id1513086248

测试过的手机:

ihone12, onePlus, 三星, 小米6

示例代码:

//get请求
get(url, params, loadingText, isQueryString, isbg) {
return new Promise( (resolve, reject) => {
//加载中效果
if (loadingText) {
uni.showLoading({
title: loadingText,
mask: true
})
}
url = getQueryUrl(url, params, isQueryString);
url = encodeURI(url);
// console.log('检测当前网络是否超时', res.isConnected)
let header = getHeader();
uni.request({
url: url,
data: params || {},
method: 'GET',
header: header,
success(res) {
loadingText && uni.hideLoading();
res.success = checkResult(res, isbg);
resolve(res);
},
fail: (err) => {
console.log(err)
err.success = false
if (err.errMsg.indexOf('timeout') !== -1 || err.errMsg.indexOf('超时') !== -1){
loadingText && uni.hideLoading();
uni.showToast({
title: '请求超时,请稍后再试~',
icon: 'none',
duration: 2000
})
resolve(err)
return
}
uni.getNetworkType({
success: (res) => {
console.log('判断当前是否有网络', res.networkType === 'none')
console.log('判断当前是否有网络', !res.networkType)
if (res.networkType === 'none' || !res.networkType) {
uni.hideToast()
uni.hideLoading()
uni.showToast({
title: '当前网络不可用,请检查你的网络~',
icon: 'none',
duration: 2000
})
resolve(err)
return
}
loadingText && uni.hideLoading();
uni.showToast({
title: '当前网络不稳定,请5分钟后再试!',
icon: 'none',
duration: 2000
})
console.log(url || '', err);
resolve(err)
},
});
}
})
})
},

操作步骤:

长时间不打开app 10小时左右再次打开后会出现请求超时的问题,同等网络环境 其他app 无问题

预期结果:

无论何时打开app请求正常

实际结果:

长时间不打开 会出现再次打开请求超时问题.

bug描述:

在 iphone12 和 一些安卓手机上会出现 长时间不打开app 再次打开后会出现请求超时的问题,目前估计的这时间大概是12小时左右,
比如当我网上8点打开app时, 网络正常, 关闭app,第二天早上再次打开时 就会出现这个请求超时的问题, 后台也无法收到请求,切换网络或重新推出后请求正常,
iphone出现的次数多一点,几乎是每次都出现, 安卓目前次数相对较少.
现在我只能在超时的时候提示用户超时了,但是在相同的网络环境下 其他的app 是正常的,这表示网络是没问题的
希望官网能解决下

2020-11-12 11:33 负责人:无 分享
已邀请:
DCloud_UNI_LXH

DCloud_UNI_LXH

  1. 其他app也是您开发的吗?
  2. 如果晚上卸载,早晨安装,网络是否正常
  3. 可以升级HX后,再次打包测试
  • d***@yunfanda.com (作者)

    可能是我表述没清楚, 其他app是指 列如微信 微博等其他的app,


    卸载重装每次是没什么问题的,请求都很快,


    因为这个问题的随机性比较高, 找不到必定触发的条件,所以我们每次都是多台机器 打开app随机抓包测试, 看是否每次请求是否触发,还是请求超时.


    现在只能是说更新hx版本 看是否还会这样,看到底是代码问题还是uni-app官方这边的问题,


    等有了结论我会在回来发布的.

    2020-11-13 10:31

  • DCloud_UNI_LXH

    回复 d***@yunfanda.com: 请问,当前app是在头一天晚上结束,还是挂后台了?然后第二天出现网络请求的问题

    2020-11-13 11:22

  • d***@yunfanda.com (作者)

    回复 DCloud_UNI_LXH: APP是在头一天晚上结束的 完全关闭的情况下再次打开会出现

    2020-11-13 11:27

DCloud_UNI_LXH

DCloud_UNI_LXH

  1. 请问你们有其他app吗?这些app有没有问题
  2. 如果头一天晚上完全关闭,过了你说的那个时间,再次打开,是否还要问题
  3. 您说重新安装没事,那么在打开前清空缓存是否还有这个问题
  4. 出现问题时,使用的是wifi还是数据流量?这个是否有影响
  • d***@yunfanda.com (作者)


    1. 我们这边暂时没有其他的app,

    2. 头一天晚上关闭app, 早上打开就会出现这个问题, 这个时间是不确定 预估是10小时,因为这个问题一般出现在早上第一次打开和 晚上6点左右的时候,所以我是预估的时间,

    3. 因为问题是随机性 我不能判断每次打开后是否会出现这个情况,所以无法验证 清除缓存是否对这个会有影响否,

    4. 出现问题时大部分是是有的WiFi , 出现问题切换到浏览后 就可以了, 是有流量打开是暂时没出现过这个问题的,


    还有就是刚刚我联机调试的时候发现有一个请求 报了 request:fail abort statusCode:-1","success":false 这个错误 我现在在确定是否是这个报错引起的问题

    2020-11-13 11:54

1***@qq.com

1***@qq.com

我这个项目好像也出现了这种问题,就是偶尔请求超时,超时的请求Stalled超长,请问找到原因了吗

该问题目前已经被锁定, 无法添加新回复