移动端小数据UUID永久存储的方法及系统与流程

文档序号:11458498阅读:333来源:国知局
本发明涉及互联网移动端应用开发领域,具体是涉及一种移动端小数据uuid永久存储的方法及系统。
背景技术
::在移动app(application,应用)的开发过程中,经常需要获取用户设备的uuid(universallyuniqueidentifier,通用唯一识别码),用户标示uuid是小数据的一种,小数据是指数据量很少,是一个字符串组成的key,对用户的独立设备进行统计,获取用户的uuid有很多好处,例如可以实现一个手机只能执行一次的操作,用户如果卸载app,重新获取用户的唯一标示,这个唯一标示就变了,给用户带来很多麻烦。技术实现要素:本发明的目的是为了克服上述
背景技术
:的不足,提供一种移动端小数据uuid永久存储的方法及系统,能够方便快捷地实现移动端小数据uuid的永久存储。本发明提供一种移动端小数据uuid永久存储的方法,包括以下步骤:a、判断获取函数获取的通用唯一识别码uuid是否存在,如果获取函数获取的uuid字符串存在,获取已经存储的uuid字符串,直接使用;b、如果获取函数获取的uuid字符串不存在,获取c语言类型的uuid,获取uuid的字符串类型的值;创建一份uuid字符串的副本result,存储result,实现移动端小数据uuid的永久存储。在上述技术方案的基础上,步骤a中,所述获取已经存储的uuid字符串的过程如下:根据一个key值,key值是服务器字符串,获得一个可变的字典;在可变字典中添加key;在可变字典中添加key的个数极值;定义一个c语言类型的二进制的关键数据keydata;获取keydata中的数据,通过变量retdata记住keydata中的数据;判断keydata是否存在,如果存在,使用c语言的内存释放函数,释放keydata;返回变量retdata。在上述技术方案的基础上,步骤b中,存储result的过程如下:获取一个可变字典;为可变字典赋值;为可变字典添加搜索路径。在上述技术方案的基础上,步骤b中,使用uuid字符串创建函数,获取uuid的字符串类型的值。在上述技术方案的基础上,步骤b中,使用c语言桥接释放函数,创建一份uuid字符串的副本result。本发明还提供一种移动端小数据uuid永久存储的系统,该系统包括判断单元、第一获取单元、第二获取单元,其中:判断单元用于:判断获取函数获取的通用唯一识别码uuid是否存在,如果获取函数获取的uuid字符串存在,指示第一获取单元工作;如果获取函数获取的uuid字符串不存在,指示第二获取单元工作;第一获取单元用于:如果获取函数获取的uuid字符串存在,获取已经存储的uuid字符串,直接使用;第二获取单元用于:如果获取函数获取的uuid字符串不存在,获取c语言类型的uuid,获取uuid的字符串类型的值;创建一份uuid字符串的副本result,存储result,实现移动端小数据uuid的永久存储。在上述技术方案的基础上,所述第一获取单元获取已经存储的uuid字符串的过程如下:根据一个key值,key值是服务器字符串,获得一个可变的字典;在可变字典中添加key;在可变字典中添加key的个数极值;定义一个c语言类型的二进制的关键数据keydata;获取keydata中的数据,通过变量retdata记住keydata中的数据;判断keydata是否存在,如果存在,使用c语言的内存释放函数,释放keydata;返回变量retdata。在上述技术方案的基础上,所述第二获取单元存储result的过程如下:获取一个可变字典;为可变字典赋值;为可变字典添加搜索路径。在上述技术方案的基础上,所述第二获取单元使用uuid字符串创建函数,获取uuid的字符串类型的值。在上述技术方案的基础上,所述第二获取单元使用c语言桥接释放函数,创建一份uuid字符串的副本result。与现有技术相比,本发明的优点如下:(1)本发明判断获取函数获取的通用唯一识别码uuid是否存在,如果获取函数获取的uuid字符串存在,获取已经存储的uuid字符串,直接使用;如果获取函数获取的uuid字符串不存在,获取c语言类型的uuid,获取uuid的字符串类型的值;创建一份uuid字符串的副本result,存储result,实现移动端小数据uuid的永久存储。本发明能够实现移动端小数据uuid的永久存储,即使用户卸载app,下一次获取到的用户标示还是和原来的一样,一个app安装以后,以后再安装这个app,获取到的唯一标示是同一个,这种卸载后重新安装获取到的唯一标示在app开发中有广泛的应用。(2)当uuid从来没有被存储过的时候,本发明获取c语言类型的uuid,获取uuid的字符串类型的值;创建一份uuid字符串的副本result,获取到这个uuid。(3)本发明调用函数+(void)save:(nsstring*)servicedata:(id)data,将uuid存储起来,方便下一次读取的时候获取,这个函数的存储是存储在钥匙串中,钥匙串中存储的数据,即使app卸载了,下次app安装了,还是可以读取上一次存储的数据,也就是说钥匙串中存储的数据是无法卸载的,达到了一个永久存储的效果。附图说明图1是本发明实施例中移动端小数据uuid永久存储的方法的流程图。具体实施方式下面结合附图及具体实施例对本发明作进一步的详细描述。参见图1所示,本发明实施例提供一种移动端小数据uuid永久存储的方法,包括以下步骤:a、判断获取函数获取的通用唯一识别码uuid是否存在,如果获取函数获取的uuid字符串存在,获取已经存储的uuid字符串,直接使用;b、如果获取函数获取的uuid字符串不存在,获取c语言类型的uuid,使用uuid字符串创建函数,获取uuid的字符串类型的值;使用c语言桥接释放函数,创建一份uuid字符串的副本result,存储result,实现移动端小数据uuid的永久存储。步骤a中,获取已经存储的uuid字符串的过程如下:根据一个key值,key值是服务器字符串,获得一个可变的字典;在可变字典中添加key;在可变字典中添加key的个数极值;定义一个c语言类型的二进制的关键数据keydata;获取keydata中的数据,通过变量retdata记住keydata中的数据;判断keydata是否存在,如果存在,使用c语言的内存释放函数,释放keydata;返回变量retdata。步骤b中,存储result的过程如下:获取一个可变字典;为可变字典赋值;为可变字典添加搜索路径。本发明还提供一种移动端小数据uuid永久存储的系统,该系统包括判断单元、第一获取单元、第二获取单元,其中:判断单元用于:判断获取函数获取的通用唯一识别码uuid是否存在,如果获取函数获取的uuid字符串存在,指示第一获取单元工作;如果获取函数获取的uuid字符串不存在,指示第二获取单元工作;第一获取单元用于:如果获取函数获取的uuid字符串存在,获取已经存储的uuid字符串,直接使用;第二获取单元用于:如果获取函数获取的uuid字符串不存在,获取c语言类型的uuid,使用uuid字符串创建函数,获取uuid的字符串类型的值;使用c语言桥接释放函数,创建一份uuid字符串的副本result,存储result,实现移动端小数据uuid的永久存储。第一获取单元获取已经存储的uuid字符串的过程如下:根据一个key值,key值是服务器字符串,获得一个可变的字典;在可变字典中添加key;在可变字典中添加key的个数极值;定义一个c语言类型的二进制的关键数据keydata;获取keydata中的数据,通过变量retdata记住keydata中的数据;判断keydata是否存在,如果存在,使用c语言的内存释放函数,释放keydata;返回变量retdata。第二获取单元存储result的过程如下:获取一个可变字典;为可变字典赋值;为可变字典添加搜索路径。下面通过具体的函数来说明。将小数据存储封装为一个函数的优点:调用超级方便,需要获取deviceid的时候,只需要调用这个函数,底层判断uuid是否存在,存在,就直接取出uuid;不存在,就获取uuid,同时进行存储等一系列复杂的操作。移动端的小数据的永久的存储方案是通过函数:+(nsstring*)getdeviceid来实现的,这个函数的编写过程如下:一、使用一个获取函数if([dykeychainload:uuidkey]),判断获取函数获取存储的uuid是否存在,如果获取函数[dykeychainload:uuidkey]获取的字符串存在,获取已经存储的uuid字符串,直接使用;dykeychain这个类中的+(id)load:(nsstring*)service函数编写过程如下:1、使用函数[selfgetkeychainquery:service],根据一个key值,key值是服务器字符串,获得一个可变的字典:nsmutabledictionary*keychainquery;2、在可变字典中添加key:[keychainquerysetobject:(id)kcfbooleantrueforkey:(id)ksecreturndata];3、在可变字典中添加key的个数极值:ksecmatchlimit[keychainquerysetobject:(id)ksecmatchlimitoneforkey:(id)ksecmatchlimit];4、定义一个c语言类型的二进制的关键数据keydata;keydata为cfdatarefkeydata=null;5、获取keydata中的数据,通过变量retdata记住keydata中的数据;6、使用语句if(keydata),判断keydata是否存在,如果存在,使用c语言的内存释放函数cfrelease(keydata),释放keydata;7、返回变量retdata。步骤一的优点:主要作用是获取已经存储起来的uuid字符串。二、如果获取函数[dykeychainload:uuidkey]获取的uuid字符串不存在,1、使用函数cfuuidrefpuuid=cfuuidcreate(nil),获取c语言类型的uuid;2、使用uuid字符串创建函数cfstringrefuuidstring=cfuuidcreatestring(nil,puuid),获取uuid的字符串类型的值;3、使用c语言桥接释放函数nsstring*result=(nsstring*)cfbridgingrelease(cfstringcreatecopy(null,uuidstring)),创建一份uuid字符串的副本result;4、使用函数[dykeychainsave:uuidkeydata:result],存储result,存储的key是自定义的uuidkey;其中,函数+(void)save:(nsstring*)servicedata:(id)data的编写过程如下:4.1、使用函数nsmutabledictionary*keychainquery=[selfgetkeychainquery:service],获取一个可变字典keychainquery;4.2、在可变字典中使用函数[keychainquerysetobject:[nskeyedarchiverarchiveddatawithrootobject:data]forkey:(id)ksecvaluedata],为可变字典赋值;4.3、使用函数secitemadd((cfdictionaryref)keychainquery,null),为可变字典添加搜索路径;5、返回result。步骤二的优点:(1)当uuid从来没有被存储过的时候,获取c语言类型的uuid,获取uuid的字符串类型的值;创建一份uuid字符串的副本result,获取到这个uuid。(2)调用函数+(void)save:(nsstring*)servicedata:(id)data,将uuid存储起来,方便下一次读取的时候获取,这个函数的存储是存储在钥匙串中,钥匙串中存储的数据,即使app卸载了,下次app安装了,还是可以读取上一次存储的数据,也就是说钥匙串中存储的数据是无法卸载的,达到了一个永久存储的效果。本领域的技术人员可以对本发明实施例进行各种修改和变型,倘若这些修改和变型在本发明权利要求及其等同技术的范围之内,则这些修改和变型也在本发明的保护范围之内。说明书中未详细描述的内容为本领域技术人员公知的现有技术。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1