1.用椅子藍牙協(xié)議 26指令(新增指令,藍牙主動下發(fā)約5秒一次)獲取最后一次坐站時間點 以及狀態(tài)等 具體規(guī)則協(xié)議有說明
首頁坐站變化均有動畫效果 由序列圖實現(xiàn)
2.顯示當(dāng)前坐站時間不需要本地記錄嘱函,用藍牙協(xié)議 26 獲取最后一次坐站時間點 然后與當(dāng)前時間做時間差值
3.底部的坐站總時間我的計算方式為 通過listSumRecord
接口獲取當(dāng)天的記錄數(shù)據(jù) 從而獲取當(dāng)天已有的坐站總時間 然后加上當(dāng)次的時間
坐姿總時間 = 當(dāng)天已有坐姿總時間 + 當(dāng)次坐時間
站姿總時間 = 當(dāng)天已有站姿總時間 + 當(dāng)次站時間
為了保持?jǐn)?shù)據(jù)的實時性 我會每次進入首頁都會請求一下接口 更新一下數(shù)據(jù)
-
底部進度條 以及總時間顯示 是交替顯示 漸隱漸現(xiàn)效果 動畫時長2秒 顯示5秒 一直循環(huán)
IMG_2133.GIF
進度條中百分比數(shù)字顯示規(guī)則:< 20% 字體紅色 在紅色進度條右邊
,>= 20% 字體白色 與紅色進度條右對齊
- 分享規(guī)則 :晚上十點后(每次進首頁 都判定當(dāng)前時間是否為22點之后) 請求接口
isMeetUserByDay
, 根據(jù)接口返回數(shù)據(jù)判斷是否需要顯示按鈕(要達到條件(后臺判斷) 才可分享)
接口規(guī)則參閱 設(shè)置中接口修改
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稍有調(diào)整 沒設(shè)計圖 具體看蘋果顯示6.坐姿站姿切換 不需要通過指令獲取 統(tǒng)一由26指令下發(fā)即可
7.讀取記錄 因為記錄不停讀取物延,讀取到記錄就上報服務(wù)器 然后清空設(shè)備記錄 根據(jù)藍牙協(xié)議 32-33-34
因為頻繁調(diào)用指令 會導(dǎo)致硬件延遲 所以app不可以頻繁調(diào)用指令 所有開計時器循環(huán)發(fā)送指令的情況都要禁止捐友,此處要調(diào)用讀取指令 可在每次收到26指令后(主動下發(fā)) 就調(diào)用32指令 根據(jù)32指令的結(jié)果在調(diào)用 33指令 數(shù)據(jù)上報服務(wù)器后調(diào)用34指令 此處邏輯有先后順序
ps: 為了解決指令發(fā)的太多導(dǎo)致 硬件處理不過來 硬件要求前端大約每發(fā)200條指令 就要暫停0.5秒左右
8.增加了推送通知功能 (推送用的友盟推送 賬號密碼會提供) app開啟時如果收到分享通知會在首頁顯示分享界面 我是根據(jù)文案來判定是否是分享通知(Please check the health || 請查看您)中英文匹配
9.右上角的星星代表做操運動次數(shù),有過運動為實心星星逆济,沒有運動為空心星星蜀肘,默認(rèn)顯示5顆星星绊汹,點擊橢圓區(qū)域可以切換到10顆星星,5顆10顆的樣式可切換
11.放松操
坐時達到最短坐立時間 就會彈出放松操界面
點擊
忽略
后回到彈窗消失扮宠,點擊開始
一分鐘倒計時開始西乖,并且忽略
按鈕不可點擊,只能等1分鐘倒計時結(jié)束后彈窗自動消失,并且首頁右上角點亮星星個數(shù)加1(最多全部點亮10顆)