- 集成 @react-native-voice/voice 实现中文语音识别,支持“一句话记录”餐食 - 新增语音录制页面,含波形动画、音量反馈与识别结果确认 - FloatingFoodOverlay 新增语音入口,打通拍照/库/语音三种记录方式 - 添加麦克风与语音识别权限描述(iOS Info.plist 与 Android manifest) - 实现开发者模式:连续三次点击用户名激活,含日志查看、导出与清除 - 新增 logger 工具类,统一日志存储(AsyncStorage)与按级别输出 - 重构 BackgroundTaskManager 为单例并支持 Promise 初始化,避免重复注册 - 移除 sleep-detail 多余渐变背景,改用 ThemedView 统一主题 - 新增通用 haptic 反馈函数,支持多种震动类型(iOS only) - 升级 expo-background-task、expo-notifications、expo-task-manager 至兼容版本
90 lines
2.0 KiB
TypeScript
90 lines
2.0 KiB
TypeScript
// 应用路由常量定义
|
|
export const ROUTES = {
|
|
// Tab路由
|
|
TAB_EXPLORE: '/explore',
|
|
TAB_COACH: '/coach',
|
|
TAB_GOALS: '/goals',
|
|
TAB_STATISTICS: '/statistics',
|
|
TAB_PERSONAL: '/personal',
|
|
|
|
// 训练相关路由
|
|
WORKOUT_TODAY: '/workout/today',
|
|
WORKOUT_CREATE_SESSION: '/workout/create-session',
|
|
WORKOUT_SESSION: '/workout/session',
|
|
|
|
// 训练计划相关路由
|
|
TRAINING_PLAN: '/training-plan',
|
|
|
|
// 体态评估路由
|
|
AI_POSTURE_ASSESSMENT: '/ai-posture-assessment',
|
|
|
|
// 挑战路由
|
|
CHALLENGE: '/challenge',
|
|
CHALLENGE_DAY: '/challenge/day',
|
|
|
|
// 文章路由
|
|
ARTICLE: '/article',
|
|
|
|
// 用户相关路由
|
|
AUTH_LOGIN: '/auth/login',
|
|
PROFILE_EDIT: '/profile/edit',
|
|
PROFILE_GOALS: '/profile/goals',
|
|
|
|
// 法律相关路由
|
|
LEGAL_USER_AGREEMENT: '/legal/user-agreement',
|
|
LEGAL_PRIVACY_POLICY: '/legal/privacy-policy',
|
|
|
|
// 营养相关路由
|
|
NUTRITION_RECORDS: '/nutrition/records',
|
|
FOOD_LIBRARY: '/food-library',
|
|
VOICE_RECORD: '/voice-record',
|
|
|
|
// 体重记录相关路由
|
|
WEIGHT_RECORDS: '/weight-records',
|
|
|
|
// 健康相关路由
|
|
FITNESS_RINGS_DETAIL: '/fitness-rings-detail',
|
|
SLEEP_DETAIL: '/sleep-detail',
|
|
|
|
// 任务相关路由
|
|
TASK_DETAIL: '/task-detail',
|
|
|
|
// 目标管理路由 (已移至tab中)
|
|
// GOAL_MANAGEMENT: '/goal-management',
|
|
|
|
// 开发者相关路由
|
|
DEVELOPER: '/developer',
|
|
DEVELOPER_LOGS: '/developer/logs',
|
|
} as const;
|
|
|
|
// 路由参数常量
|
|
export const ROUTE_PARAMS = {
|
|
// 训练会话参数
|
|
WORKOUT_SESSION_ID: 'id',
|
|
|
|
// 训练计划参数
|
|
TRAINING_PLAN_ID: 'planId',
|
|
TRAINING_PLAN_TAB: 'tab',
|
|
|
|
// 挑战日参数
|
|
CHALLENGE_DAY: 'day',
|
|
|
|
// 文章参数
|
|
ARTICLE_ID: 'id',
|
|
|
|
// 任务参数
|
|
TASK_ID: 'taskId',
|
|
|
|
// 重定向参数
|
|
REDIRECT_TO: 'redirectTo',
|
|
REDIRECT_PARAMS: 'redirectParams',
|
|
} as const;
|
|
|
|
// 查询参数常量
|
|
export const QUERY_PARAMS = {
|
|
// 训练计划查询参数
|
|
TRAINING_PLAN_TAB_SCHEDULE: 'schedule',
|
|
|
|
// 教练页面参数
|
|
COACH_NAME: 'name',
|
|
} as const; |