fix(icloud): Pro8.0 stabilize hide-my-email flow

This commit is contained in:
daniellee2015
2026-04-26 17:56:48 +08:00
parent 48bc07b94c
commit adf4e2d342
5 changed files with 1041 additions and 128 deletions
+21 -1
View File
@@ -388,6 +388,19 @@
}
}
function isLikelyIcloudLoginRequiredMessage(message = '') {
const lower = String(message || '').toLowerCase();
return lower.includes('请先在新打开的 icloud 页面中完成登录')
|| lower.includes('请先在当前浏览器登录')
|| lower.includes('需要先登录')
|| lower.includes('请先登录')
|| lower.includes('please sign in')
|| lower.includes('sign in required')
|| lower.includes('not logged in')
|| lower.includes('authentication required')
|| lower.includes('unauthenticated');
}
async function handleLoginDone() {
if (dom.btnIcloudLoginDone) {
dom.btnIcloudLoginDone.disabled = true;
@@ -405,7 +418,14 @@
helpers.showToast('iCloud 会话已恢复,别名列表已刷新。', 'success', 2600);
await refreshIcloudAliases({ silent: true });
} catch (err) {
helpers.showToast(`看起来还没有登录完成:${err.message}`, 'warn', 4200);
const errorMessage = String(err?.message || '未知错误');
if (isLikelyIcloudLoginRequiredMessage(errorMessage)) {
helpers.showToast(`看起来还没有登录完成:${errorMessage}`, 'warn', 4200);
return;
}
await refreshIcloudAliases({ silent: true }).catch(() => { });
helpers.showToast(`iCloud 会话校验失败(非登录态):${errorMessage}`, 'warn', 4200);
} finally {
if (dom.btnIcloudLoginDone) {
dom.btnIcloudLoginDone.disabled = false;