import { useEffect } from 'react'; import { ActivityIndicator, StyleSheet, View } from 'react-native'; import { useRouter } from 'expo-router'; import AsyncStorage from '@react-native-async-storage/async-storage'; import { getOnboardingCompleted, getConsentAccepted, setOnboardingCompleted, setConsentAccepted } from '@/src/storage/appStorage'; /** * 启动分发:根据 consent 和 onboarding 状态跳转 */ export default function Index() { const router = useRouter(); useEffect(() => { let cancelled = false; (async () => { // 【临时清除数据】:用于测试完整流程 await AsyncStorage.clear(); console.log('AsyncStorage has been cleared for testing.'); // 1. 检查是否同意协议 const consentAccepted = await getConsentAccepted(); if (cancelled) return; if (!consentAccepted) { router.replace('/(splash)/splash'); return; } // 2. 检查 Onboarding 是否已完成 const completed = await getOnboardingCompleted(); if (cancelled) return; if (completed) { // 如果已经完成过流程,直接进 Home router.replace('/(app)/home'); } else { // 如果是首次进入(或未完成流程),进入 Onboarding router.replace('/(onboarding)/onboarding'); } })(); return () => { cancelled = true; }; }, [router]); return ( ); } const styles = StyleSheet.create({ container: { flex: 1, alignItems: 'center', justifyContent: 'center' }, });