iOS下結(jié)合高德地圖司機(jī)打卡整理

業(yè)務(wù)描述:司機(jī)根據(jù)后臺(tái)人員排的班次進(jìn)行自動(dòng)打卡無(wú)需任何操作
需求:司機(jī)在時(shí)間范圍前一分鐘后五分鐘在范圍則自動(dòng)打卡.
前后10分鐘出范圍自動(dòng)打卡.上班次延誤未超過(guò)下趟班次的到達(dá)時(shí)間,可以在出范圍進(jìn)行打卡.到站打卡只和范圍有關(guān).
1.由于后臺(tái)數(shù)據(jù)經(jīng)常存在變化的情況,前臺(tái)在無(wú)當(dāng)前班次的情況定時(shí)刷新,一分鐘刷新一次或者手動(dòng)拉取刷新.
2 定時(shí)傳位置需要重傳,打卡狀態(tài)允許離線(xiàn)打卡.
3 班次類(lèi)型具有正常班次和滾動(dòng)班次的區(qū)別,正常班次跟時(shí)間地點(diǎn)有關(guān),滾動(dòng)班次只和地點(diǎn)有關(guān)系
4 滾動(dòng)班次可以設(shè)置手動(dòng)設(shè)置當(dāng)前班次.也可自動(dòng)匹配.
5 司機(jī)允許異常手動(dòng)出發(fā)打卡和結(jié)束異常到站打卡,其實(shí)可以設(shè)置個(gè)最大允許次數(shù),手動(dòng)打卡每天可以定一些規(guī)則次數(shù)允許只允許有4次
6 司機(jī)賬號(hào)只允許單點(diǎn)登錄
實(shí)現(xiàn)思路:
主要幾個(gè)模塊
1.單例的定位管理模塊內(nèi)容主要管理當(dāng)前班次和所有班次的數(shù)組維護(hù)其狀態(tài)
2.單例管理的單獨(dú)用于所有的失敗請(qǐng)求重傳 失敗的任務(wù)存到本地fmdb存下,網(wǎng)絡(luò)變化時(shí)檢測(cè)任務(wù)有則傳
3.由于對(duì)網(wǎng)絡(luò)和定位等要求很高.所有控制器繼承基類(lèi)包括檢查網(wǎng)絡(luò)狀態(tài)的情況和定位權(quán)限的更改,退出當(dāng)前賬號(hào)的處理
說(shuō)說(shuō)遇到最坑的地方吧.

遇到一個(gè)空指針異常奈何收集不到bug,因?yàn)槲也蝗ガF(xiàn)場(chǎng).產(chǎn)生bug的原因是本地存儲(chǔ)了失敗的任務(wù),打卡的接口需要傳經(jīng)緯度,重啟app時(shí)會(huì)自動(dòng)重傳失敗任務(wù),但是定位回調(diào)不一定先返回值,導(dǎo)致崩潰。還有一個(gè)是由于后臺(tái)說(shuō)那個(gè)字段不可能為空,結(jié)果還是有幾率返回空.找到這個(gè)bug先后通過(guò)極光,bugly,iOS自帶的攔截異常發(fā)現(xiàn)不行,極光,只能攔截到ns系列的異常,bugly能攔截到swift的異常但是全是地址符。一堆匯編地址.找的到就有鬼了.最后通過(guò)xcode的ipa 果然就定位到了曲折. 只不過(guò)沒(méi)那么即時(shí).好歹解決了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容