60 lines
1.1 KiB
JavaScript
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);
|
|
}
|