在做公司移動辦公手機打卡功能時铐伴,公司要求一人只能綁定一臺設(shè)備,來杜絕手機代打卡事件俏讹。所以在請求服務(wù)器接口時当宴,我們傳入了UUID這個參數(shù),當?shù)谝淮未蚩〞r藐石,后臺把這個UUID保存到數(shù)據(jù)庫即供。當以后打卡,服務(wù)器判斷這個參數(shù)是否跟第一次綁定的UUID相同于微,不相同則認為你設(shè)備換了逗嫡,不能打卡。
本來這個功能用的好好的株依,但是這段時間發(fā)現(xiàn)公司有的設(shè)備在卸載程序驱证,再次安裝移動辦公的時候,它的UUID會變化恋腕,上網(wǎng)查了一下抹锄,確實會變化。
這就尷尬了荠藤。
解決方法是UUID還是通過下面方法獲取
NSString *uuidVendor = [[UIDevice currentDevice].identifierForVendor UUIDString];
NSString *uuidStr = [uuidVendor stringByReplacingOccurrencesOfString:@"-" withString:@""];
不過在獲取到這個UUID以后伙单,保存到鑰匙串中,這樣的話哈肖,不管是否卸載程序吻育,每次都先去鑰匙串中取值,如果鑰匙串中有值的話淤井,直接使用布疼。沒有的話摊趾,再去獲取設(shè)備UUID
鑰匙串按我理解就是一個字典,里面就保存著UserName和Password,我是把userID當成用戶名游两,把UUID當成password砾层,如下:
// 取UUID 從鑰匙串
NSString *uuidFromKeyChain = [SFHFKeychainUtils getPasswordForUsername:g_loginUser.userName
andServiceName:SERVICE_NAME error:nil];
//把UUID存入到鑰匙串
[SFHFKeychainUtils storeUsername:g_loginUser.userName andPassword:uuidStr forServiceName:SERVICE_NAME updateExisting:1 error:nil];
這樣就OK了
知行辦公,專業(yè)移動辦公平臺https://zx.naton.cn/
【總監(jiān)】十二春秋之贱案,3483099@qq.com肛炮;
【Master】zelo,616701261@qq.com轰坊;
【運營】狼行天下铸董,897221533@qq.com;****
【產(chǎn)品設(shè)計】流浪貓肴沫,364994559@qq.com粟害;
【體驗設(shè)計】兜兜,2435632247@qq.com颤芬;
【iOS】淘碼小工悲幅,492395860@qq.com;iMcG33K站蝠,imcg33k@gmail.com汰具;
【Android】人猿居士,1059604515@qq.com菱魔;思路的頓悟留荔,1217022114@qq.com;
【java】首席工程師MR_W澜倦,feixue300@qq.com聚蝶;
【測試】土鏡問道,847071279@qq.com藻治;
【數(shù)據(jù)】喜樂多碘勉,42151960@qq.com;
【安全】保密桩卵,你懂的验靡。