日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

iOS客戶端接入教程

更新時(shí)間:

人臉核身提供iOS客戶端SDK,幫助您在App中實(shí)現(xiàn)刷臉認(rèn)證功能。您可通過(guò)核身認(rèn)證移動(dòng)端請(qǐng)求接口獲取實(shí)人認(rèn)證唯一標(biāo)識(shí)VerificationToken,并使用VerificationToken喚起人臉核身客戶端SDK。本文將結(jié)合示例代碼進(jìn)行詳細(xì)的說(shuō)明介紹。

說(shuō)明

阿里云視覺(jué)智能開(kāi)放平臺(tái)各類目視覺(jué)AI能力API接入、接口使用或問(wèn)題咨詢等,請(qǐng)通過(guò)釘釘群(23109592)加入阿里云視覺(jué)智能開(kāi)放平臺(tái)咨詢?nèi)郝?lián)系我們。

前提條件

  • 應(yīng)用必須在iOS 9.0+真機(jī)平臺(tái)上運(yùn)行。

  • 您必須采用Objective C++集成人臉核身服務(wù)。

獲取SDK和Demo代碼

  • 下載iOS SDK

  • 下載iOS Demo

    下載iOS Demo后需要修改bundle Identifier。

重要

模擬器使用存在安全風(fēng)險(xiǎn),暫不支持在模擬器上運(yùn)行。

開(kāi)發(fā)環(huán)境配置

  1. 在info.plist中配置攝像頭權(quán)限請(qǐng)求。

    權(quán)限請(qǐng)求

  2. 在Xcode的編譯設(shè)置中關(guān)閉Bitcode選項(xiàng)。

    Bitcode

  3. 在Xcode編譯設(shè)置的Linking > Other Linker Flags中,添加設(shè)置-ObjC

    image

拷貝資源文件

選擇TARGETS,選擇Build Phases標(biāo)簽頁(yè),在Copy Bundle Resources中添加如下四個(gè)bundle:

  • APBToygerFacade.bundle:位于APBToygerFacade.framework中。

  • BioAuthEngine.bundle:位于BioAuthEngine.framework中。

  • OCRXMedia.bundle:所在位置為OCRDetectSDKForTech.framework中。

  • ToygerService.bundle:所在位置為ToygerService.framework中。

image

配置依賴

下載iOS SDK(SDK為framework包)后,在Xcode的Link Binary With Libraries添加SDK包和額外系統(tǒng)庫(kù)依賴。具體如下:

  • SDK中的包

    APBToygerFacade
    APPSecuritySDK
    BioAuthEngine
    DTFIdentityManager
    DTFMobileRPC
    DTFUtility
    OCRDetectSDKForTech
    ToygerNative
    ToygerService
    ZolozFaceAuthFacade
  • 系統(tǒng)庫(kù)依賴

    CoreGraphics.framework
    Accelerate.framework
    SystemConfiguration.framework
    AssetsLibrary.framework
    CoreTelephony.framework
    QuartzCore.framework
    CoreFoundation.framework
    CoreLocation.framework
    ImageIO.framework
    CoreMedia.framework
    AVFoundation.framework
    WebKit.framework
    libresolv.tbd
    libz.tbd
    libc++.1.tbd
    libc++abi.tbd
    AudioToolbox.framework
    CFNetwork.framework
    MobileCoreServices.framework
    libz.1.2.8.tbd
    AdSupport.framework

調(diào)用SDK

  1. 引入頭文件。

    #import <ZolozFaceAuthFacade/ZolozFaceAuthFacade.h>
  2. 初始化SDK。

    初始化SDK的代碼為:

    [ZolozFaceAuthFacade init];

    增加初始化接口的目的在于提高身份核驗(yàn)的用戶體驗(yàn),為刷臉認(rèn)證準(zhǔn)備一些必備數(shù)據(jù)。初始化接口是異步執(zhí)行,不會(huì)影響主線程UI渲染,建議接入方將初始化接口放在appdelegate的如下函數(shù)中調(diào)用:

    -(BOOL)application:(UIApplication)application didFinishLaunchingWithOptions:(NSDictionary)launchOptions
  3. 獲取metainfo數(shù)據(jù)。

    [ZolozFaceAuthFacade getMetaInfo];

    返回值為NSDictionary,接入方移動(dòng)端需要將其轉(zhuǎn)換為JSON字符串,調(diào)用移動(dòng)端的核身認(rèn)證移動(dòng)端請(qǐng)求接口時(shí)在請(qǐng)求參數(shù)MetaInfo中傳入該值。

  4. 開(kāi)始認(rèn)證。

    • 調(diào)用SDK

      [ZolozFaceAuthFacade verifyWith:self.verificationToken extParams:extParams onCompletion:^(ZIMResponse *response) {}];
    • 參數(shù)說(shuō)明

      • verificationToken:NSString類型,通過(guò)調(diào)用移動(dòng)端的核身認(rèn)證移動(dòng)端請(qǐng)求接口獲取VerificationToken的對(duì)應(yīng)值。

        說(shuō)明

        調(diào)用核身認(rèn)證移動(dòng)端請(qǐng)求接口返回的verificationToken有效期時(shí)間為30分鐘,從verificationToken生成時(shí)間開(kāi)始算起,超過(guò)有效期再進(jìn)行人臉認(rèn)證會(huì)報(bào)錯(cuò),請(qǐng)?jiān)谟行跁r(shí)間內(nèi)完成認(rèn)證。

      • extParams:NSDictionary類型。必須傳入當(dāng)前viewController,用于展現(xiàn)等待圖標(biāo)和presentViewController。

        [extParams setValue:self forKey:@"currentCtr"];

        (非必須,默認(rèn)不返回)返回視頻:在extParams里面添加returnVideo,設(shè)置值為true,視頻存儲(chǔ)的路徑:verifyWith接口返回的參數(shù)里,ZIMResponse類型參數(shù)的videoFilePath字段。

        [extParams setValue:@"true" forKey:@"returnVideo"];
    • 示例代碼

      [ZolozFaceAuthFacade verifyWith:self.verificationToken extParams:extParams onCompletion:^(ZIMResponse *response) {
          dispatch_async(dispatch_get_main_queue(), ^{
            NSString *title = @"刷臉成功";
            switch (response.code) {
              case 1000:
                  break;
              case 1001:
                  title = @"系統(tǒng)錯(cuò)誤";
                  break;
              case 1003:
                  title = @"用戶退出";
                  break;
              case 2002:
                  title = @"網(wǎng)絡(luò)錯(cuò)誤";
                  break;
              case 2006:
                  title = @"刷臉失敗";
                  break;
              case 2003:
                  title = @"設(shè)備時(shí)間不準(zhǔn)確";
                  break;
              default:
                  break;
          }
        });
      }];
    • 返回結(jié)果espons.code有以下六種返回值,類型為整型。

      HttpCode

      錯(cuò)誤碼

      描述

      1000

      ZIMResponseSuccess

      表示刷臉成功,該結(jié)果僅供參考,可通過(guò)移動(dòng)端核身認(rèn)證移動(dòng)端查詢獲取最終認(rèn)證結(jié)果。

      1001

      ZIMInternalError

      表示系統(tǒng)錯(cuò)誤。

      1003

      ZIMInterrupt

      表示驗(yàn)證中斷。

      2002

      ZIMNetworkfail

      表示網(wǎng)絡(luò)錯(cuò)誤。

      2003

      ZIMTIMEError

      表示設(shè)備時(shí)間設(shè)置不對(duì)。

      2006

      ZIMResponseFail

      表示刷臉失敗,如需獲取更詳細(xì)的失敗原因,可通過(guò)移動(dòng)端核身認(rèn)證移動(dòng)端查詢獲取最終認(rèn)證結(jié)果。

      了解更多信息,請(qǐng)參見(jiàn)iOS客戶端錯(cuò)誤碼詳情

      [ZolozFaceAuthFacade verifyWith:self.verificationToken extParams:extParams onCompletion:^(ZIMResponse *response) {}];

      response.imageContent:返回采集到的人臉圖片數(shù)據(jù),格式為NSData。如果用戶中途退出或者超時(shí),則圖片數(shù)據(jù)為nil。客戶上傳圖片到移動(dòng)端時(shí),不能對(duì)NSData進(jìn)行任何壓縮或者縮放,因?yàn)橐苿?dòng)端會(huì)對(duì)圖片做MD5校驗(yàn),如果有壓縮或者縮放,會(huì)導(dǎo)致MD5值不一致。將NSData轉(zhuǎn)換成圖的示例如下:

      UIImage* newImage = [UIImage imageWithData:response.imageContentData];

      response.reason和response.retMessageSub:返回原因或者認(rèn)證文案。

AppStore上架注意事項(xiàng)

AppStore上架時(shí),請(qǐng)確保您的App已申請(qǐng)了如下權(quán)限,并在Info.plist中已添加相關(guān)說(shuō)明,否則AppStore將上架失敗:

  • Camera權(quán)限,需在Info.plist中已添加NPrivacy - Camera Usage Description說(shuō)明。

  • IDFA權(quán)限,需在Info.plist中已添加NSUserTrackingUsageDescription說(shuō)明。說(shuō)明文字可以結(jié)合您的業(yè)務(wù)情況進(jìn)行描述,參考文案:“請(qǐng)放心,開(kāi)啟權(quán)限不會(huì)獲取您在其他APP或網(wǎng)站的隱私信息,該權(quán)限僅用于標(biāo)識(shí)設(shè)備并保障實(shí)名認(rèn)證流程安全、提升服務(wù)使用體驗(yàn)。”。