1.用椅子蓝牙协议 26指令(新增指令,蓝牙主动下发约5秒一次)获取最后一次坐站时间点 以及状态等 具体规则协议有说明
首页坐站变化均有动画效果 由序列图实现
2.显示当前坐站时间不需要本地记录,用蓝牙协议 26 获取最后一次坐站时间点 然后与当前时间做时间差值
3.底部的坐站总时间我的计算方式为 通过listSumRecord
接口获取当天的记录数据 从而获取当天已有的坐站总时间 然后加上当次的时间
坐姿总时间 = 当天已有坐姿总时间 + 当次坐时间
站姿总时间 = 当天已有站姿总时间 + 当次站时间
为了保持数据的实时性 我会每次进入首页都会请求一下接口 更新一下数据
-
底部进度条 以及总时间显示 是交替显示 渐隐渐现效果 动画时长2秒 显示5秒 一直循环
进度条中百分比数字显示规则:< 20% 字体红色 在红色进度条右边
,>= 20% 字体白色 与红色进度条右对齐
- 分享规则 :晚上十点后(每次进首页 都判定当前时间是否为22点之后) 请求接口
isMeetUserByDay
, 根据接口返回数据判断是否需要显示按钮(要达到条件(后台判断) 才可分享)
接口规则参阅 设置中接口修改
NSUserDefaults * userDefault = [NSUserDefaults standardUserDefaults];
parame[@"msgToken"] = [userDefault objectForKey:@"msgToken"];
parame[@"method"] = @"isMeetUserByDay";
[SYTool getDataWithURL:mainURL
parame:parame
success:^(id object){
SLog(@"成功:%@",object);
BOOL isHidden = [object[@"result"][@"isMeet"] boolValue];
self.shareBtn.hidden = isHidden;
} failure:^(NSError *error) {
// NSLog(@"失败%@",error);
}];
5.分享UI稍有调整 没设计图 具体看苹果显示6.坐姿站姿切换 不需要通过指令获取 统一由26指令下发即可
7.读取记录 因为记录不停读取,读取到记录就上报服务器 然后清空设备记录 根据蓝牙协议 32-33-34
因为频繁调用指令 会导致硬件延迟 所以app不可以频繁调用指令 所有开计时器循环发送指令的情况都要禁止,此处要调用读取指令 可在每次收到26指令后(主动下发) 就调用32指令 根据32指令的结果在调用 33指令 数据上报服务器后调用34指令 此处逻辑有先后顺序
ps: 为了解决指令发的太多导致 硬件处理不过来 硬件要求前端大约每发200条指令 就要暂停0.5秒左右
8.增加了推送通知功能 (推送用的友盟推送 账号密码会提供) app开启时如果收到分享通知会在首页显示分享界面 我是根据文案来判定是否是分享通知(Please check the health || 请查看您)中英文匹配
9.右上角的星星代表做操运动次数,有过运动为实心星星,没有运动为空心星星,默认显示5颗星星,点击椭圆区域可以切换到10颗星星,5颗10颗的样式可切换
11.放松操
坐时达到最短坐立时间 就会弹出放松操界面
点击
忽略
后回到弹窗消失,点击开始
一分钟倒计时开始,并且忽略
按钮不可点击,只能等1分钟倒计时结束后弹窗自动消失,并且首页右上角点亮星星个数加1(最多全部点亮10颗)