当前位置: 首页 > 编程日记 > 正文

iOS8.0 之后指纹解锁

iOS 8.0 SDK 开放了调用指纹识别的API,但是仅限于支持5s 以后的机型

使用的话,很简单,要导入系统的库

#import <LocalAuthentication/LocalAuthentication.h>

#import "ViewController.h"
#import <LocalAuthentication/LocalAuthentication.h>
@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.// 调取指纹识别[self bioFingerPrint];
}/**关于调取指纹识别的条件1> 设备至少是5s 以上2> iOS SDK 至少为8.0以上*/
- (void)bioFingerPrint {//1 初始化调用指纹方法的变量LAContext *lac = [[LAContext alloc]init];NSError *error = nil;// 2 判断设备是否拥有指纹识别的功能if ([lac canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {//3 调用方法// 1>LAPolicyDeviceOwnerAuthenticationWithBiometrics 就是代表生物授权的方法// 2>localizedReason 指纹解锁的时候显示的提示信息// 3> 调用回调,成功或者失败// 如果使用支付的话,支付的代码一般放在此block中,[lac evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"放下您的金手指" reply:^(BOOL success, NSError * _Nullable error) {/**一般来讲,失败了,要去捕获失败的原因,一下是失败原因的类型1> 用户未提供有效证书(三次验证失败)LAErrorAuthenticationFailed = kLAErrorAuthenticationFailed,2> 用户取消LAErrorUserCancel           = kLAErrorUserCancel,3> 用户选择了输入密码LAErrorUserFallback         = kLAErrorUserFallback,4> 另外一个应用进入前台,比如系统来电,验证指纹界面直接消失LAErrorSystemCancel         = kLAErrorSystemCancel,5> 设备未设置密码,未设置密码是不能启用指纹识别的LAErrorPasscodeNotSet       = kLAErrorPasscodeNotSet,6> 设备指纹识别不可用LAErrorTouchIDNotAvailable  = kLAErrorTouchIDNotAvailable,7> 没有登记的手指触摸TouchIDLAErrorTouchIDNotEnrolled = kLAErrorTouchIDNotEnrolled,*/if (!error) { //指纹解锁成功 支付成功,success为1NSLog(@"指纹解锁成功,跳转支付。success:%d",success);}else{ //指纹解锁失败switch (error.code) {case LAErrorAuthenticationFailed:NSLog(@"用户未提供有效证书,三次验证失败");break;case LAErrorUserCancel:NSLog(@"用户点击取消,比如点击回退按钮");break;case LAErrorUserFallback:NSLog(@"用用户选择了输入密码");break;case LAErrorSystemCancel:NSLog(@"另外一个应用进入前台,比如系统来电");break;case LAErrorPasscodeNotSet:NSLog(@"设备未设置密码,未设置密码是不能启用指纹识别的");break;case LAErrorTouchIDNotAvailable:NSLog(@"设备指纹识别不可用");case LAErrorTouchIDNotEnrolled:NSLog(@"没有登记的手指触摸TouchID");break;default:break;}}}];}}@end

相关文章:

gitter 卸载_最佳Gitter频道:Scala

gitter 卸载by Gitter通过吉特 最佳Gitter频道&#xff1a;Scala (Best Gitter channels on: Scala) Scala is an object-oriented functional language that has gained wide acceptance in developer communities for many of its merits. These include runtime performanc…

iOS AES加密

AES 美国国家安全局采用的加密方法&#xff0c;MAC 系统自带的钥匙串也是采用的AES 加密方法 有两种模式 CBC 模式 链式加密 &#xff0c;密码块链&#xff0c;使用一个秘钥和一个初始化向量&#xff0c;对数据执行加密。 ECB 电子密码本方法加密&#xff0c;数据拆分成块&a…

(转)Unity中武器与人物的碰撞检测

自&#xff1a;http://blog.csdn.net/Monzart7an/article/details/24435843 目前来说有三种思路&#xff0c;其实前两种算变种了&#xff1a; 1、动画关键帧回调 范围检测。 这个是在Asset store上面下的一个例子中看到的&#xff0c;其实之前在做端游时&#xff0c;也差不多是…

CentOS Linux解决 Device eth0 does not seem to be present

通过OVF部署Linux主机后提示 ringing up interface eth0: Device eth0 does not seem to be present,delaying initialization. 解决办法&#xff1a; 首先&#xff0c;打开/etc/udev/rules.d/70-persistent-net.rules内容如下面例子所示&#xff1a; # vi /etc/udev/rules.d/…

meteor从入门到精通_我已经大规模运行Meteor一年了。 这就是我所学到的。

meteor从入门到精通by Elie Steinbock埃莉斯坦博克(Elie Steinbock) 我已经大规模运行Meteor一年了。 这就是我所学到的。 (I’ve been running Meteor at scale for a year now. Here’s what I’ve learned.) A year ago I wrote an article describing my first experience…

使用javascript开发2048

嗯&#xff0c;团队队友开发了一个简单的2048...哈哈&#xff0c;没办法&#xff0c;这游戏那么疯狂&#xff0c;必须搞搞啦&#xff0c;大家能够直接粘贴代码到一个html文件&#xff0c;直接执行就可以 依赖文件&#xff1a;jquery&#xff0c;假设乜有&#xff0c;大家能够自…

html 自动弹出框

1.点击div外部隐藏&#xff0c; //*代表tip_box所包含的子元素 $(body).click(function(e) {var target $(e.target);if(!target.is(#tip_box *) ) {//事件处理} });2.div动态展开 .tip_box{width:300px;height:0;border-radius:3px;background-color:#fff;overflow:hidden;bo…

3-runtime 之 Tagged Pointer

Tagged Pointer 是自从iPhone 5s 之后引入的特性 1 先说一下iOS的内存布局 代码区&#xff1a;存放编译之后的代码数据段 &#xff1a;字符串常量 &#xff1a; NSString *hello “hello”;已经初始化和未初始化的全局变量&#xff0c;静态变量堆&#xff1a;通过alloc&#…

编程术语_伟大的编程术语烘烤

编程术语by Preethi Kasireddy通过Preethi Kasireddy 伟大的编程术语烘烤 (The Great Programming Jargon Bake-off) Imperative vs. Declarative. Pure vs. Impure. Static vs. Dynamic.命令式与声明式。 纯与不纯。 静态与动态。 Terminology like this is sprinkled throu…

Swift 圆环进度条

Swift 圆环进度条 import UICircularProgressRing import UIKit import UICircularProgressRing class ViewController: UIViewController {var progress:UICircularProgressRing!;override func viewDidLoad() {super.viewDidLoad()// Do any additional setup after loading …

Linux文件系统构成(第二版)

Linux文件系统构成/boot目录&#xff1a;内核文件、系统自举程序文件保存位置,存放了系统当前的内核【一般128M即可】如:引导文件grub的配置文件等/etc目录&#xff1a;系统常用的配置文件&#xff0c;所以备份系统时一定要备份此目录如&#xff1a;系统管理员经常需要修改的文…

include_once 问题

最近在做微信小程序&#xff0c;在include_once 微信文件后&#xff0c;该方法return 前面会用特殊字符&#xff0c;导致我return 给前端的本来是json串变成了字符 解决方法 &#xff1a; ob_clean(); return json_encode(array);转载于:https://www.cnblogs.com/zouzhe0/p/630…

babel6 babel7_当您已经准备好Babel时设置Flow

babel6 babel7by Jamie Kyle杰米凯尔(Jamie Kyle) 当您已经准备好Babel时设置Flow (Setting up Flow when you’ve already got Babel in place) Flow is a static type checker for JavaScript. It makes you more productive by providing feedback as you write code. Flow…

如何为Android上的产品设计一款合适的图标

如 果你已经完成了你的app&#xff0c;你一定会马上向其它人宣布这件事情。但是你需要注意一个很重要的问题&#xff0c;那就是app的图标。你的图标可能在项目启动之 前就已经设计好了&#xff0c;但我不喜欢这样&#xff0c;如果app没有完成实际上图标也没什么用了。如果你不是…

得到windows聚焦图片(windows 10)

有些Windows聚焦图片确实很漂亮&#xff0c;很希望保留下来&#xff0c;但是Windows聚焦图片总更好&#xff0c;网上有得到聚焦图片的方法&#xff0c;每次都手动去弄真麻烦&#xff0c;于是自己编了一个小程序&#xff0c;自动得到Windows聚焦图片&#xff0c;下面是运行这个小…

swift 加载gif 框架图片

swift 加载gif 框架图片 SwiftGifOrigin 以下代码 轻松搞定 let imgView UIImageView(frame: CGRect(x: 50, y: 100, width: 280, height: 200));imgView.loadGif(name: "gfff");self.view.addSubview(imgView);

devops_最低可行DevOps

devopsby Michael Shilman通过迈克尔希尔曼(Michael Shilman) 最低可行DevOps (Minimum Viable DevOps) 快速而肮脏的指南&#xff0c;用于扩展您的发布并拥抱互联网的死亡 (A quick and dirty guide to scaling your launch and embracing the Internet hug of death) Startu…

java基础之——类的初始化顺序(转载)

原文地址&#xff1a;http://www.cnblogs.com/chrischennx/p/3612295.html 由浅入深&#xff0c;首先&#xff0c;我们来看一下&#xff0c;一个类初始化有关的都有些啥米&#xff1a; 静态成员变量、静态代码块、普通成员变量、普通代码块、构造器。&#xff08;成员方法&…

如何用CSS快速布局(一)—— 布局元素详细

要快速进行网页排版布局&#xff0c;则必须对布局的元素有清晰的了解&#xff0c;才不会总是在细节处出错。这一篇先详解有关布局的因素作为布局基础&#xff1a;块级元素and内联元素、盒模型、准确定位、元素对齐、样式继承。下一篇则重点描述快速布局思路。 一、什么是块级元…

iOS 改变字符串中数字的颜色

匹配中文字符 [\u4e00-\u9fa5] 匹配双字节字符(包括汉字在内) [^\x00-\xff] 匹配网址&#xff1a;[a-zA-z]://[^\s]* 匹配国内电话 \d{3}-\d{8}|\d{4}-\{7,8} 匹配腾讯QQ号 [1-9][0-9]{4,} 匹配18位身份证号^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$ Swift String…

jpg在线合并jpg_JPG如何运作

jpg在线合并jpgby Colt McAnlis通过Colt McAnlis JPG如何运作 (How JPG Works) The JPG file format was one of the most technologically impressive advancements to image compression to come on the scene in 1992. Since then, it’s been a dominant force in represe…

革命就是请客吃饭(案例分析吧)

前不久路过南京, 拜会了本科同学. 刚好他要见个青年才俊谈些事情, 于是就神神秘秘地把我拉了过去. 一路高谈阔论, 指点江山, 忆往昔峥嵘岁月之后, 此次"拜访"的目的也渐渐清晰起来. 我们所要见的人是位年轻的创业者, 他有些移动互联网的点子, 想和我们分享下, 并尝试…

TextView-- 测量文字宽度

https://my.oschina.net/lengwei/blog/637380; http://blog.csdn.net/mare_blue/article/details/51388403; http://blog.csdn.net/baidu_31093133/article/details/52413893; --1,Android中调用Paint的measureText()方法取得字符串显示的宽度值: public static float GetTextW…

swift 简单风格的Toaster

简单风格的Toaster Toaster //1 弹出文本 "Hello World" 延迟时间 2 展示时间 1 Toast(text: "Hello World", delay: 2, duration: 1).show();//2 初始化toast 方法 let toast Toast(text: "你好世界"); toast.show(); toast.cancel();// 3 …

工业革命前数千年人口经济_我们已经进行了数千年的编程

工业革命前数千年人口经济by Tautvilas Mečinskas由TautvilasMečinskas 我们已经进行了数千年的编程 (We have been programming for thousands of years) Computer programs are all around us. We interact with them every day. It looks as if software is becoming mor…

1-flutter 安装步骤

flutter 安装步骤 1 下载SDK SDK 下载地址 2 解压压缩包 将sdk 文件夹丢进系统的应用程序&#xff08;Application&#xff09;的目录 3 配置环境变量 命令行 open ~/.bash_profile &#xff0c;然后在bash 文件中写入下面配置 export PATH$PATH:/Applications/flutter/bi…

codevs1258 关路灯(☆区间dp)

1258 关路灯 时间限制: 1 s空间限制: 128000 KB题目等级 : 大师 Master题目描述 Description多瑞卡得到了一份有趣而高薪的工作。每天早晨他必须关掉他所在村庄的街灯。所有的街灯都被设置在一条直路的同一侧。 多瑞卡每晚到早晨5点钟都在晚会上&#xff0c;然后他开始关灯。开…

BroadcastReceiver自学笔记

1. 使用步骤&#xff1a; 1.1 声明Intent Intent intent new Intent("name");------静态常用 IntentFilter filter new IntentFilter("name");--------动态常用 1.2 注册 1.3 接收&#xff1a;利用action或者Bundle 在OnReceive()中&#xff0c;接收信息…

小狗钱钱_小狗设计

小狗钱钱by Patryk Adaś通过PatrykAdaś 小狗设计 (Design for doggies) Education should be universal and free for everyone.教育应该是普及的&#xff0c;对所有人来说都是免费的。 When I first entered the field, designers were patient with me. They gave me fee…

层化(stratification)的方法

有时候我们会遇到调整后的模型反而不如调整前表现好的情况&#xff0c;这可能和数据的随机分割有关系。在这个不平衡的数据情况下&#xff0c;最好用层化&#xff08;stratification&#xff09;的方法&#xff0c;比如&#xff1a; from sklearn.cross_validation import Stra…