跑自定义基座是没问题,
发testflight有的机器没问题,有的有问题,上线了之前有客户反馈,我说是ios系统低打回了,因为我复现不了,偶尔能复现但是重下或者等几分钟好像能正常,
有的可以通过切网络就正常了,
现在我的机器必现,一直显示没网,怎么处理都显示没网,
看代码networkType拿到的一直是none,但是基座调试不出来,基座给了网络权限就有网,不弹提示
然后我排查测试发现个情况,我开了抓包请求和图可以正常请求回来,但是networkType还是反的none,关了抓包请求和图就反不回来,可能是什么问题呢?
如果是请求和图能正常返回,我还可以从代码上规避下,现在是确实是有网拿不到网络,没什么思路
cli是4.66 hb是4.65
function getNetworkOk() {
return new Promise((resolve, reject) => {
const timeoutId = setTimeout(() => {
console.log('获取网络状态超时,默认认为有网络');
resolve(true);
}, 2000);
const maxRetries = 2;
let retryCount = 0;
const retryDelay = 500;
function checkNetworkStatus() {
uni.getNetworkType({
success: function (res) {
clearTimeout(timeoutId);
uni.showToast({
title: '!!!' + JSON.stringify(res),
icon: 'none',
})
if (res && res.networkType) {
if (res.networkType === 'none') {
console.log('当前无网络');
resolve(false);
} else {
resolve(true);
}
} else {
console.warn('获取网络类型失败: res为空或不包含networkType');
// 重试逻辑
if (retryCount < maxRetries) {
retryCount++;
console.log(`重试获取网络状态 (第 ${retryCount} 次)`);
setTimeout(checkNetworkStatus, retryDelay);
} else {
resolve(true);
}
}
},
fail: function (err) {
clearTimeout(timeoutId);
console.log('获取网络状态失败', err);
if (retryCount < maxRetries) {
retryCount++;
console.log(`重试获取网络状态 (第 ${retryCount} 次)`);
setTimeout(checkNetworkStatus, retryDelay);
} else {
resolve(true);
}
}
});
}
checkNetworkStatus();
});
}