第三部分
这里呢,是最重要的地方,也是最简单的地方,只要在appdelegate.m文件中加上几句话就可以实现了。
在下面这个方法里面写,下面这个方法是呢app被唤醒进入活跃状态的方法
- (void)applicationDidBecomeActive:(UIApplication *)application
这边的知识点其实还挺多的,就是一个生命周期的问题,一个app运行完成,即将进入活跃状态,已经进入活跃状态,即将进入后台,已经进入后台状态,这几种状态,在之前我还想着声明一个变量让app在后台运行的时候,也跟着运行,类似于一个计时器,但是我看了网上的一些想要让app后台挂起的时候还能运行一些东西,设置过程就好几种,而且很多都说上架的时候审核是不给过得,想着有时间的话可以好好研究下那些方法,这里我就没有弄,所以才有了上面的
[[NSUserDefaults standardUserDefaults]setObject:@"YES" forKey:@"touchIDISon"];
这个值,本来也是设置成计时器的,但是这样好像更方便点,就这么设置了,因为为了全局都可以取到这个值。
在唤醒方法中写下代码
- (void)applicationDidBecomeActive:(UIApplication *)application {
NSString *touchIDExist = [[NSUserDefaults standardUserDefaults]objectForKey:@"TouchID"];
NSString *touchISOn = [[NSUserDefaults standardUserDefaults]objectForKey:@"touchIDISon"];
if ([touchIDExist isEqualToString:@"1"] && [touchISOn isEqualToString:@"NO"])
{
YLSTouchidView *yls = [[YLSTouchidView alloc]init];
[yls show];
}
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(20 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[[NSUserDefaults standardUserDefaults]setObject:@"NO" forKey:@"touchIDISon"];
});
}
下面那个呢就是为了防止重复调用,因为好像当页面出现指纹验证的弹出框的时候,app似乎就是被挂起到后台了,然后唤醒的时候又要被调用,所以这里出现了一个重复调用的问题,然后我就找个不是办法的办法来解决这个问题。就是用上面这段代码来处理,具体道理我也不知道咋说,就这么迷迷糊糊的实现了功能。这样子就是完成了一个指纹验证以及app唤醒的时候指纹解锁的一个小demo。present出来一个单独的页面的方式其实跟这个差不多,但是这篇文章的篇幅好像有点太长了,估计也没什么人看到最后,所以我就不写了,啥时候想补的话再补上来吧。
#### 还有就是,本人作为新手,上面代码有啥问题的话,或者有啥可以优化的地方,希望大家可以指正,大家一起共同进步共同学习。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持ASPKU。










