iOS中判断是否首次下载app

//判断是否首次下载

在程序启动的时候app delegate 中先判断

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    

BOOL isFirst=[[NSUserDefaultsstandardUserDefaultsboolForKey:@"firstDownload"];

    if(!isFirst){//如果不存在,则是第一次下载

        NSLog(@"第一次下载");

        [[NSUserDefaultsstandardUserDefaultssetBool: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;

    }

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值