Files
crmchat/uniapp/pages/api/network.js
T
2026-08-11 22:22:10 +08:00

60 lines
1.1 KiB
JavaScript

import http from '@/pages/api/index.js'
import api from '@/pages/api/api.js'
export function onNetworkStatusChange(onlineFun, offlineFun) {
//#ifdef H5
function addHandler(element, type, handler) {
if (element.addEventListener) {
element.addEventListener(type, handler, false);
} else if (element.attachEvent) {
element.attachEvent("on" + type, handler);
} else {
element["on" + type] = handler;
}
}
addHandler(window, 'online', () => {
onlineFun()
})
addHandler(window, 'offline', () => {
offlineFun()
});
//#endif
//#ifdef APP-PLUS
uni.onNetworkStatusChange(res => {
if (res.networkType != 'none') {
onlineFun(res);
} else {
offlineFun(res);
}
});
//#endif
}
let NetWork = null;
export function onNetworkStatusChangeV2(onlineFun, offlineFun) {
if (NetWork) {
clearInterval(NetWork);
NetWork = null;
}
let online = null,
offline = null;
NetWork = setInterval(() => {
http(api.pingNetWork).then(() => {
if (online === null) {
onlineFun();
online = true;
}
offline = null;
}).catch(() => {
if (offline === null) {
offlineFun();
offline = true;
}
online = null;
})
}, 1000);
}