浅析IOS开发TouchID指纹解锁功能

2025-05-29 0 91

效果图如下

浅析IOS开发TouchID指纹解锁功能

实现过程

1.首先引入指纹解锁必须的头文件

?

1
#import <localauthentication/localauthentication.h>

2.了解下主要的两个方法
这个方法是判断设备是否支持touchid的。

?

1
- (bool)canevaluatepolicy:(lapolicy)policy error:(nserror * __autoreleasing *)error __attribute__((swift_error(none)));

这个是用来验证touchid的,会有弹出框出来。

?

1

2

3
- (void)evaluatepolicy:(lapolicy)policy

localizedreason:(nsstring *)localizedreason

reply:(void(^)(bool success, nserror * __nullable error))reply;

3.新建lacontext对象

主要的属性设置

localizedfallbacktitle:用于设置左边的按钮的名称,默认是enter password.

localizedreason:用于设置提示语,表示为什么要使用touch id

浅析IOS开发TouchID指纹解锁功能
解锁失败界面

?

1

2

3

4

5

6
//创建lacontext

lacontext *context = [lacontext new];

//这个属性是设置指纹输入失败之后的弹出框的选项

context.localizedfallbacktitle = @"没有忘记密码";

4.主要回调方法,包括成功以及失败的

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78
nserror *error = nil;

if ([context canevaluatepolicy:lapolicydeviceownerauthenticationwithbiometrics error:&error]) {

nslog(@"支持指纹识别");

[context evaluatepolicy:lapolicydeviceownerauthenticationwithbiometrics localizedreason:@"指纹解锁" reply:^(bool success, nserror * _nullable error) {

if (success) {

nslog(@"验证成功 刷新主界面");

}else{

nslog(@"%@",error.localizeddescription);

switch (error.code) {

case laerrorsystemcancel:

{

nslog(@"系统取消授权,如其他app切入");

break;

}

case laerrorusercancel:

{

nslog(@"用户取消验证touch id");

break;

}

case laerrorauthenticationfailed:

{

nslog(@"授权失败");

break;

}

case laerrorpasscodenotset:

{

nslog(@"系统未设置密码");

break;

}

case laerrortouchidnotavailable:

{

nslog(@"设备touch id不可用,例如未打开");

break;

}

case laerrortouchidnotenrolled:

{

nslog(@"设备touch id不可用,用户未录入");

break;

}

case laerroruserfallback:

{

[[nsoperationqueue mainqueue] addoperationwithblock:^{

nslog(@"用户选择输入密码,切换主线程处理");

}];

break;

}

default:

{

[[nsoperationqueue mainqueue] addoperationwithblock:^{

nslog(@"其他情况,切换主线程处理");

}];

break;

}

}

}

}];

}else{

nslog(@"不支持指纹识别");

switch (error.code) {

case laerrortouchidnotenrolled:

{

nslog(@"touchid is not enrolled");

break;

}

case laerrorpasscodenotset:

{

nslog(@"a passcode has not been set");

break;

}

default:

{

nslog(@"touchid not available");

break;

}

}

nslog(@"%@",error.localizeddescription);

}

总结

到这里指纹解锁功能几乎就算完成,使用确实很简单,因为苹果都已经给我们做好一切,对我们开发者来说就很轻松了。教程写的很简陋,希望大家多多包涵,如果有疑问大家可以留言交流。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 浅析IOS开发TouchID指纹解锁功能 https://www.kuaiidc.com/92906.html

相关文章

发表评论
暂无评论