最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺析IOS開(kāi)發(fā)TouchID指紋解鎖功能

 更新時(shí)間:2016年09月01日 11:52:40   投稿:daisy  
TouchID指紋解鎖功能現(xiàn)在在app中已經(jīng)很常見(jiàn),其實(shí)這個(gè)功能實(shí)現(xiàn)起來(lái)是很簡(jiǎn)單的,因?yàn)樘O果都已經(jīng)幫我們封裝好了,只需要實(shí)現(xiàn)幾個(gè)方法就可以了。下面來(lái)一起看看。

效果圖如下

實(shí)現(xiàn)過(guò)程

1.首先引入指紋解鎖必須的頭文件

#import <LocalAuthentication/LocalAuthentication.h>

2.了解下主要的兩個(gè)方法
這個(gè)方法是判斷設(shè)備是否支持TouchID的。

- (BOOL)canEvaluatePolicy:(LAPolicy)policy error:(NSError * __autoreleasing *)error __attribute__((swift_error(none)));

這個(gè)是用來(lái)驗(yàn)證TouchID的,會(huì)有彈出框出來(lái)。

- (void)evaluatePolicy:(LAPolicy)policy
  localizedReason:(NSString *)localizedReason
     reply:(void(^)(BOOL success, NSError * __nullable error))reply;

3.新建LAContext對(duì)象

主要的屬性設(shè)置

localizedFallbackTitle:用于設(shè)置左邊的按鈕的名稱,默認(rèn)是Enter Password.

localizedReason:用于設(shè)置提示語(yǔ),表示為什么要使用Touch ID


解鎖失敗界面

 //創(chuàng)建LAContext
 LAContext *context = [LAContext new];

 
 //這個(gè)屬性是設(shè)置指紋輸入失敗之后的彈出框的選項(xiàng)
 context.localizedFallbackTitle = @"沒(méi)有忘記密碼";

4.主要回調(diào)方法,包括成功以及失敗的

NSError *error = nil;
 if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) {
  NSLog(@"支持指紋識(shí)別");
  [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"指紋解鎖" reply:^(BOOL success, NSError * _Nullable error) {
   if (success) {
    NSLog(@"驗(yàn)證成功 刷新主界面");
   }else{
    NSLog(@"%@",error.localizedDescription);
    switch (error.code) {
     case LAErrorSystemCancel:
     {
      NSLog(@"系統(tǒng)取消授權(quán),如其他APP切入");
      break;
     }
     case LAErrorUserCancel:
     {
      NSLog(@"用戶取消驗(yàn)證Touch ID");
      break;
     }
     case LAErrorAuthenticationFailed:
     {
      NSLog(@"授權(quán)失敗");
      break;
     }
     case LAErrorPasscodeNotSet:
     {
      NSLog(@"系統(tǒng)未設(shè)置密碼");
      break;
     }
     case LAErrorTouchIDNotAvailable:
     {
      NSLog(@"設(shè)備Touch ID不可用,例如未打開(kāi)");
      break;
     }
     case LAErrorTouchIDNotEnrolled:
     {
      NSLog(@"設(shè)備Touch ID不可用,用戶未錄入");
      break;
     }
     case LAErrorUserFallback:
     {
      [[NSOperationQueue mainQueue] addOperationWithBlock:^{
       NSLog(@"用戶選擇輸入密碼,切換主線程處理");
      }];
      break;
     }
     default:
     {
      [[NSOperationQueue mainQueue] addOperationWithBlock:^{
       NSLog(@"其他情況,切換主線程處理");
      }];
      break;
     }
    }
   }
  }];
 }else{
  NSLog(@"不支持指紋識(shí)別");
  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);
 }

總結(jié)

到這里指紋解鎖功能幾乎就算完成,使用確實(shí)很簡(jiǎn)單,因?yàn)樘O果都已經(jīng)給我們做好一切,對(duì)我們開(kāi)發(fā)者來(lái)說(shuō)就很輕松了。教程寫的很簡(jiǎn)陋,希望大家多多包涵,如果有疑問(wèn)大家可以留言交流。

相關(guān)文章

  • iOS開(kāi)發(fā)retina屏幕下的點(diǎn)與像素關(guān)系詳解

    iOS開(kāi)發(fā)retina屏幕下的點(diǎn)與像素關(guān)系詳解

    這篇文章主要為大家介紹了iOS開(kāi)發(fā)retina屏幕下的點(diǎn)與像素關(guān)系詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • ios利用正則表達(dá)式判斷手機(jī)號(hào)碼格式是否正確的實(shí)例

    ios利用正則表達(dá)式判斷手機(jī)號(hào)碼格式是否正確的實(shí)例

    下面小編就為大家分享一篇ios利用正則表達(dá)式判斷手機(jī)號(hào)碼格式是否正確的實(shí)例,具有很好的參考價(jià)值。希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11
  • iOS實(shí)現(xiàn)電子簽名

    iOS實(shí)現(xiàn)電子簽名

    這篇文章主要為大家詳細(xì)介紹了iOS實(shí)現(xiàn)電子簽名,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • iOS開(kāi)發(fā)之一些實(shí)用小知識(shí)點(diǎn)總結(jié)

    iOS開(kāi)發(fā)之一些實(shí)用小知識(shí)點(diǎn)總結(jié)

    這篇文章主要給大家介紹了關(guān)于iOS開(kāi)發(fā)之實(shí)用小知識(shí)點(diǎn)的相關(guān)資料,其中包括防止UIButton,cell等重復(fù)點(diǎn)擊、獲取當(dāng)前視圖最頂層的ViewController以及代碼截圖相關(guān)的等知識(shí),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-10-10
  • Mac  Android Studio快捷鍵整理

    Mac Android Studio快捷鍵整理

    這篇文章主要介紹了Mac Android Studio快捷鍵的相關(guān)資料,這里整理了所有能用的快捷鍵,提供工作效率,需要的朋友可以參考下
    2016-10-10
  • iOS開(kāi)發(fā)中使用CoreLocation框架處理地理編碼的方法

    iOS開(kāi)發(fā)中使用CoreLocation框架處理地理編碼的方法

    這篇文章主要介紹了iOS開(kāi)發(fā)中使用CoreLocation框架處理地理編碼的方法,代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下
    2015-12-12
  • IOS開(kāi)發(fā)之@property的詳細(xì)介紹

    IOS開(kāi)發(fā)之@property的詳細(xì)介紹

    這篇文章主要介紹了IOS開(kāi)發(fā)之@property的詳細(xì)介紹的相關(guān)資料,希望通過(guò)本文能幫助到大家,大家理解并會(huì)使用,需要的朋友可以參考下
    2017-09-09
  • iOS開(kāi)發(fā)中Swift3 監(jiān)聽(tīng)UITextView文字改變的方法(三種方法)

    iOS開(kāi)發(fā)中Swift3 監(jiān)聽(tīng)UITextView文字改變的方法(三種方法)

    在項(xiàng)目中使用文本輸入框出UITextField之外還會(huì)經(jīng)常使用 UITextView ,難免會(huì)有需求監(jiān)聽(tīng)UITextView文本框內(nèi)文本數(shù)量.下面介紹在swift3中兩種常用方式,需要的朋友參考下吧
    2016-11-11
  • iOS中多線程的經(jīng)典崩潰總結(jié)大全

    iOS中多線程的經(jīng)典崩潰總結(jié)大全

    這篇文章主要給大家介紹了關(guān)于iOS中多線程的一些經(jīng)典崩潰的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-12-12
  • 詳解IOS如何防止抓包

    詳解IOS如何防止抓包

    為了防止被抓包那么就要了解抓包的原理。本文將詳細(xì)介紹IOS如何防止抓包,感興趣的同學(xué),可以參考下。
    2021-06-06

最新評(píng)論

丰都县| 鄂尔多斯市| 利辛县| 龙门县| 南川市| 成武县| 扬中市| 鄯善县| 什邡市| 马公市| 黑水县| 独山县| 竹山县| 乐陵市| 安康市| 江永县| 北京市| 郎溪县| 金塔县| 阿拉尔市| 泗水县| 银川市| 延川县| 苍南县| 广西| 平陆县| 壶关县| 茌平县| 白河县| 通州市| 龙南县| 基隆市| 柳林县| 房山区| 南宁市| 仲巴县| 刚察县| 泊头市| 康定县| 许昌县| 泗水县|