feat: 自动更新改为每天检查一次

- 新增 localStorage 记录上次检查时间戳 (mjk_last_update_check)
- 启动时判断距离上次检查是否超过 24 小时
- 未超过则跳过,避免每次启动都请求后端
- 设置页手动检查不受此限制
This commit is contained in:
小鱼开发
2026-06-01 16:51:25 +08:00
parent 6f9e4e3e4e
commit d195bb9f1b
@@ -2,7 +2,7 @@
* 更新对话框组件
* ==============
*
* 应用启动时自动检查更新,发现新版本后弹出此对话框。
* 应用启动时自动检查更新(每天最多一次),发现新版本后弹出此对话框。
* 支持强制更新(无法跳过)。
*/
@@ -30,11 +30,22 @@ export default function UpdateDialog() {
relaunch,
} = useUpdater();
// 应用启动时自动检查更新(延迟 3 秒,避免阻塞首屏
// silent=true:失败时不弹窗,只打 console 日志
// 应用启动时自动检查更新(每天最多一次
// 延迟 3 秒避免阻塞首屏;silent=true:失败时不弹窗,只打 console 日志
useEffect(() => {
const timer = setTimeout(() => {
check(true);
const LAST_CHECK_KEY = 'mjk_last_update_check';
const ONE_DAY_MS = 24 * 60 * 60 * 1000;
const lastCheckRaw = localStorage.getItem(LAST_CHECK_KEY);
const lastCheck = lastCheckRaw ? parseInt(lastCheckRaw, 10) : 0;
const now = Date.now();
if (!lastCheck || now - lastCheck > ONE_DAY_MS) {
check(true).finally(() => {
localStorage.setItem(LAST_CHECK_KEY, Date.now().toString());
});
}
}, 3000);
return () => clearTimeout(timer);
}, [check]);