feat(onboarding): 添加新用户引导流程
实现了完整的应用引导功能,包括: - 新增引导页面UI,包含健康数据追踪、轻断食计划和健康挑战三个介绍页面 - 添加引导状态持久化存储,使用AsyncStorage管理用户完成状态 - 修改应用启动逻辑,根据引导状态决定跳转到主页或引导页 - 在开发者选项中添加重置引导状态功能,方便测试 - 更新路由配置和存储键常量,统一管理引导相关配置
This commit is contained in:
@@ -1,14 +1,26 @@
|
||||
import { ROUTES } from '@/constants/Routes';
|
||||
import { STORAGE_KEYS } from '@/services/api';
|
||||
import AsyncStorage from '@/utils/kvStore';
|
||||
import { Ionicons } from '@expo/vector-icons';
|
||||
import { useRouter } from 'expo-router';
|
||||
import React from 'react';
|
||||
import { ScrollView, StyleSheet, Text, TouchableOpacity, View } from 'react-native';
|
||||
import { Alert, ScrollView, StyleSheet, Text, TouchableOpacity, View } from 'react-native';
|
||||
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
||||
import { Ionicons } from '@expo/vector-icons';
|
||||
|
||||
export default function DeveloperScreen() {
|
||||
const router = useRouter();
|
||||
const insets = useSafeAreaInsets();
|
||||
|
||||
const resetOnboardingStatus = async () => {
|
||||
try {
|
||||
await AsyncStorage.removeItem(STORAGE_KEYS.onboardingCompleted);
|
||||
Alert.alert('成功', '引导状态已重置,下次启动应用将重新显示引导页面');
|
||||
} catch (error) {
|
||||
console.error('重置引导状态失败:', error);
|
||||
Alert.alert('错误', '重置引导状态失败,请重试');
|
||||
}
|
||||
};
|
||||
|
||||
const developerItems = [
|
||||
{
|
||||
title: '日志',
|
||||
@@ -16,6 +28,12 @@ export default function DeveloperScreen() {
|
||||
icon: 'document-text-outline',
|
||||
onPress: () => router.push(ROUTES.DEVELOPER_LOGS),
|
||||
},
|
||||
{
|
||||
title: '重置引导状态',
|
||||
subtitle: '清除 onboarding 缓存,下次启动将重新显示引导页面',
|
||||
icon: 'refresh-outline',
|
||||
onPress: resetOnboardingStatus,
|
||||
},
|
||||
];
|
||||
|
||||
return (
|
||||
|
||||
Reference in New Issue
Block a user