feat(background-task): 实现iOS原生后台任务V2系统并重构锻炼通知消息模板

- 新增iOS原生BackgroundTaskBridge桥接模块,支持后台任务注册、调度和完成
- 重构BackgroundTaskManager为V2版本,集成原生iOS后台任务能力
- 在AppDelegate中注册后台任务处理器,确保应用启动时正确初始化
- 重构锻炼通知消息生成逻辑,使用配置化模板提升可维护性
- 扩展健康数据类型映射,支持更多运动项目的中文显示
- 替换原有backgroundTaskManager引用为backgroundTaskManagerV2
This commit is contained in:
richarjiang
2025-11-04 09:41:10 +08:00
parent fbffa07f74
commit f80a1bae78
10 changed files with 1319 additions and 78 deletions

View File

@@ -1647,6 +1647,7 @@ const WORKOUT_TYPE_LABELS: Record<string, string> = {
cycling: '骑行',
swimming: '游泳',
yoga: '瑜伽',
pilates: '普拉提',
functionalstrengthtraining: '功能性力量训练',
traditionalstrengthtraining: '传统力量训练',
crosstraining: '交叉训练',
@@ -1654,7 +1655,6 @@ const WORKOUT_TYPE_LABELS: Record<string, string> = {
highintensityintervaltraining: '高强度间歇训练',
flexibility: '柔韧性训练',
cooldown: '放松运动',
pilates: '普拉提',
dance: '舞蹈',
danceinspiredtraining: '舞蹈训练',
cardiodance: '有氧舞蹈',
@@ -1664,11 +1664,72 @@ const WORKOUT_TYPE_LABELS: Record<string, string> = {
underwaterdiving: '水下潜水',
pickleball: '匹克球',
americanfootball: '美式橄榄球',
australianfootball: '澳式橄榄球',
archery: '射箭',
badminton: '羽毛球',
baseball: '棒球',
basketball: '篮球',
tennis: '球',
bowling: '保龄球',
boxing: '拳击',
climbing: '攀岩',
cricket: '板球',
curling: '冰壶',
elliptical: '椭圆机',
equestriansports: '马术',
fencing: '击剑',
fishing: '钓鱼',
golf: '高尔夫',
gymnastics: '体操',
handball: '手球',
hiking: '徒步',
hockey: '曲棍球',
hunting: '狩猎',
lacrosse: '长曲棍球',
martialarts: '武术',
mindandbody: '身心运动',
mixedmetaboliccardiotraining: '混合代谢有氧训练',
paddlesports: '桨类运动',
play: '自由活动',
preparationandrecovery: '准备与恢复',
racquetball: '壁球',
rowing: '划船',
rugby: '橄榄球',
sailing: '帆船',
skatingsports: '滑冰运动',
snowsports: '雪上运动',
soccer: '足球',
softball: '垒球',
squash: '壁球',
stairclimbing: '爬楼梯',
surfing: '冲浪',
surfingsports: '冲浪运动',
tabletennis: '乒乓球',
tennis: '网球',
trackandfield: '田径',
volleyball: '排球',
waterfitness: '水中健身',
watersports: '水上运动',
weighttraining: '重量训练',
wrestling: '摔跤',
barre: '芭蕾杆训练',
corebTraining: '核心训练',
jumprope: '跳绳',
kickboxing: '踢拳',
taichi: '太极',
taichichuan: '太极拳',
nordicwalking: '北欧式行走',
frisbee: '飞盘',
ultimatefrisbee: '极限飞盘',
mountainbiking: '山地自行车',
roadcycling: '公路骑行',
virtualrunning: '虚拟跑步',
virtualcycling: '虚拟骑行',
trailrunning: '越野跑',
treadmillrunning: '跑步机跑步',
trackrunning: '场地跑',
openwaterswimming: '公开水域游泳',
poolswimming: '游泳池游泳',
apneadiving: '自由潜',
functionalStrengthTraining: '功能性力量训练',
other: '其他运动',
};
@@ -1730,6 +1791,42 @@ export function getWorkoutTypeDisplayName(workoutType: WorkoutActivityType | str
return '放松运动';
case WorkoutActivityType.Tennis:
return '网球';
case WorkoutActivityType.Basketball:
return '篮球';
case WorkoutActivityType.Soccer:
return '足球';
case WorkoutActivityType.Baseball:
return '棒球';
case WorkoutActivityType.Volleyball:
return '排球';
case WorkoutActivityType.Dance:
return '舞蹈';
case WorkoutActivityType.DanceInspiredTraining:
return '舞蹈训练';
case WorkoutActivityType.Elliptical:
return '椭圆机';
case WorkoutActivityType.Rowing:
return '划船';
case WorkoutActivityType.StairClimbing:
return '爬楼梯';
case WorkoutActivityType.Hiking:
return '徒步';
case WorkoutActivityType.Climbing:
return '攀岩';
case WorkoutActivityType.MindAndBody:
return '身心运动';
case WorkoutActivityType.MartialArts:
return '武术';
case WorkoutActivityType.Golf:
return '高尔夫';
case WorkoutActivityType.Boxing:
return '拳击';
case WorkoutActivityType.SnowSports:
return '雪上运动';
case WorkoutActivityType.SurfingSports:
return '冲浪运动';
case WorkoutActivityType.WaterFitness:
return '水中健身';
case WorkoutActivityType.Other:
return '其他运动';
default: