admin管理员组文章数量:1600685
//判断是否首次下载
在程序启动的时候app delegate 中先判断
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
BOOL isFirst=[[NSUserDefaultsstandardUserDefaults] boolForKey:@"firstDownload"];
if(!isFirst){//如果不存在,则是第一次下载
NSLog(@"第一次下载");
[[NSUserDefaultsstandardUserDefaults] setBool:YESforKey:@"firstDownLoad"];
//执行相应的操作,如第一次下载发红包,给优惠券等
}else {
NSLog(@"不是第一次下载");
}
returnYES;
}
//这个是用本地偏好设置存储的,会存在一个问题,如果应用删除了,又重新下载,(当iCloud不存储时)会清除缓存。吧数据保存到服务器,根据手机唯一的标志,保存;下次登陆的时候从服务器取出判断;
手机标识的方法:1.钥匙串保存(不存app的删除要消失,一直在电脑中);
1.钥匙串KeyChian 是保存在沙盒之外的存储数据,相当于Dictionary, 所有应用都可以获取和保存,因此当一个软件卸载之后完全不影响里面的数据,这样当软件重新安装之后,还可以获取里面的原数据。
钥匙串的第三方框架SFHFKeychainUtils:
//保存数据
BOOL s = [SFHFKeychainUtils storeUsername:name andPassword:pswd forServiceName:server updateExisting:NO error:nil];
//获取密码
NSString * psw = [SFHFKeychainUtils getPasswordForUsername:name andServiceName:server error:nil];
还有许多框架:SSKeyChains
KeychainItemWrapper
#pragma mark - 判断是不是首次登录或者版本更新
-(BOOL )isFirstLauch{
//获取当前版本号
NSDictionary *infoDic = [[NSBundle mainBundle] infoDictionary];
NSString *currentAppVersion = infoDic[@"CFBundleShortVersionString"];
//获取上次启动应用保存的appVersion
NSString *version = [[NSUserDefaults standardUserDefaults] objectForKey:kAppVersion];
//版本升级或首次登录
if (version == nil || ![version isEqualToString:currentAppVersion]) {
[[NSUserDefaults standardUserDefaults] setObject:currentAppVersion forKey:kAppVersion];
[[NSUserDefaults standardUserDefaults] synchronize];
return YES;
}else{
return NO;
}
}
版权声明:本文标题:iOS中判断是否首次下载app 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1728351214a1155249.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论