fix:同意隐私

This commit is contained in:
吕新雨
2026-02-05 16:33:58 +08:00
parent 8e71503169
commit 1e1e49ea57
5 changed files with 138 additions and 53 deletions

View File

@@ -136,12 +136,20 @@ export default function OnboardingScreen() {
return;
}
// 1) 获取 Expo Push Token
// 1) 获取 Expo Push Token(失败才认为“推送开启失败”)
const expoPushToken = await getExpoPushTokenOrThrow();
// 2) 上报 token 到后端(幂等)
// 2) 上报 token 到后端(幂等;失败才认为“推送开启失败”
await registerPushToken({ pushToken: expoPushToken });
// 3) 上报推送偏好(幂等)
await setPushPreferences({ enabled: wantsPush, timesPerDay: reminderTimes });
// 注意:这一步失败时,后端仍可能已成功接收 token。
// 为避免出现“后端已接收 token 但前端弹窗提示失败”的错觉,这里改为:偏好同步失败不弹“开启失败”,仅记录并继续。
try {
await setPushPreferences({ enabled: wantsPush, timesPerDay: reminderTimes });
} catch (e) {
const msg = e instanceof Error ? e.message : String(e);
console.warn('[PushPreferences] 同步失败Onboarding不阻塞', msg);
}
await setPushPromptState('enabled');
} catch (e) {