|
@@ -8,11 +8,16 @@ export default defineComponent({
|
|
|
const router = useRouter();
|
|
|
const dialog = useDialog();
|
|
|
let isOpen = false;
|
|
|
- router.onError(error => {
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ router.onError((error, to, form) => {
|
|
|
const str = error.message + '';
|
|
|
const isChunkLoadFailed = str.indexOf('imported');
|
|
|
- console.log(error)
|
|
|
+ console.log(error, to)
|
|
|
// const targetPath = router.history.pending.fullPath
|
|
|
+
|
|
|
if (isChunkLoadFailed != -1 && !isOpen) {
|
|
|
isOpen = true;
|
|
|
dialog.warning({
|
|
@@ -21,11 +26,42 @@ export default defineComponent({
|
|
|
positiveText: '确定',
|
|
|
negativeText: '取消',
|
|
|
onPositiveClick: () => {
|
|
|
+ router.push(to)
|
|
|
window.location.reload();
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
});
|
|
|
+
|
|
|
+ const checkNewVersion = async () => {
|
|
|
+ if ('serviceWorker' in navigator) {
|
|
|
+ // let refreshing = false
|
|
|
+ const flag = (await caches.keys()).length > 0;
|
|
|
+ console.log(caches.keys(), `0904路由更新有缓存${flag}`);
|
|
|
+ caches.keys().then(function (cacheNames) {
|
|
|
+ cacheNames.forEach(function (cacheName) {
|
|
|
+ caches.delete(cacheName);
|
|
|
+ });
|
|
|
+ if (flag) {
|
|
|
+ window.location.reload();
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ // 尝试监听install
|
|
|
+
|
|
|
+ let refreshing = false;
|
|
|
+ navigator.serviceWorker.addEventListener('controllerchange', () => {
|
|
|
+ console.log('controllerchange');
|
|
|
+ if (refreshing) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ refreshing = true;
|
|
|
+ window.location.reload();
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ checkNewVersion()
|
|
|
return () => <div></div>;
|
|
|
}
|
|
|
});
|