Skip to content

POC de implementação do produto Unico | Check - SDK em IOS com swift

License

Notifications You must be signed in to change notification settings

unico-labs/unico-sdk-poc-ios-swift

Repository files navigation

unico | check - SDK iOS Swift

POC de implementação do SDK iOS unico | check em Swift

iOS Swift CocoaPods compatible Swift Package Manager compatible

📦 Instalação

Permissões para utilizar a câmera

Para utilizar o método de abertura de câmera é necessário adicionar as permissões antes de compilar a aplicação no arquivo Info.plist.

<key>NSCameraUsageDescription</key>
<string>Camera usage description</string>

Inclusão da dependência

via Cocoapods

Inclua o unicocheck-ios em seu arquivo Podfile:

pod ‘unicocheck-ios’

Em seguida, basta utilizar o comando em seu terminal para instalar as dependências:

pod install

via Swift Package Manager (SPM)

Inclua a dependência em seu arquivo Package.swift:

dependencies: [
    .package(url: "https://github.com/acesso-io/unico-check-ios.git", .upToNextMajor(from: "2.3.7"))
]

Utilização da SDK

Inicialização

Instancie o mabager informando o contexto em questão e sobrescrever os métodos de callback com as lógicas de negócio de sua aplicação implementando a interface AcessoBioManagerDelegate dentro da ViewController que deseja utilizar.

import AcessoBio

class ViewController: UIViewController {
        private var manager: AcessoBioManager?
        
        override func viewDidLoad() {
            super.viewDidLoad()        
            manager = AcessoBioManager(viewController: self)
    }
}

extension ViewController: AcessoBioManagerDelegate {
    func onErrorAcessoBioManager(_ error: ErrorBio!) {
        // your code
    }
    
    func onUserClosedCameraManually() {
        // your code
    }
    
    func onSystemClosedCameraTimeoutSession() {
        // your code
    }
    
    func onSystemChangedTypeCameraTimeoutFaceInference() {
        // your code
    }
}

❗ Todos os métodos do delegate devem ser criados em seu projeto (mesmo que sem nenhuma lógica). Caso contrário, o projeto não compilará com sucesso.


Configurar modo da câmera Selfie

Modo inteligente (captura automática - Smart Camera)

Por padrão, o SDK possui o enquadramento inteligente e a captura automática habilitados. Caso utilize este modo de câmera, não é necessário alterar nenhuma configuração. Caso as configurações da câmera tenham sido alteradas previamente em seu App, é possível restaurá-las através dos métodos setAutoCapture e setSmartFrame:

private func configureSmartCamera() {
    manager.setSmartFrame(true)
    manager.setAutoCapture(true)
}

❗ Não é possível implementar o método setAutoCapture(autoCapture: true) com o método setSmartFrame(smartFrame: false). Ou seja, não é possível manter a captura automática sem o Smart Frame, pois ele é quem realiza o enquadramento inteligente.


Modo normal

Por padrão, o SDK possui o enquadramento inteligente e a captura automática habilitados. Para utilizar o modo manual ambas as configurações relacionadas a Smart Camera devem ser desligadas através dos métodos `setAutoCapture` e `setSmartFrame`:
private func configureSmartCamera() {
    manager.setSmartFrame(false)
    manager.setAutoCapture(false)
}

❗Dica é possivel utilizar o Smart Frame em modo manual. Neste caso, a silhueta é exibida para identificar o enquadramento para então habilitar o botão. Para isto, basta configurar setAutoCapture(autoCapture: false) e setSmartFrame(smartFrame: true).


Preparar câmera

Para seguir com a abertura da câmera, primeiro deve-se prepará-la utilizando o método prepareSelfieCamera com a configuração padrão ou alguma das alterações citadas. Este método recebe como parâmetro a implementação do protocolo SelfieCameraDelegate e as credenciais de cadastro (os valores dessas informações são repassados em seu contato comercial).

@IBAction func startCamera(_ sender: Any) {
    manager?.build().prepareSelfieCamera(self, config: SDKConfig())
}

Quando a câmera estiver preparada, o evento onCameraReady é disparado recebendo como parâmetro um objeto do tipo AcessoBioCameraOpenerDelegate e efetua a abertura da mesma pelo método open. Caso ocorra algum erro ao preparar a câmera, o evento onCameraFailed é disparado. Você deve implementar este método aplicando as regras de negócio de seu App.

extension ViewController: SelfieCameraDelegate {
    func onCameraReady(_ cameraOpener: AcessoBioCameraOpenerDelegate!) {
        cameraOpener.open(self)
    }
    
    func onCameraFailed(_ message: ErrorPrepare!) {
        // your code
    }
}

Métodos delegates da câmera

Para a configuração do delegate de sucesso e erro da captura da camera, você deve implementar a interface AcessoBioSelfieDelegate:

extension ViewController: AcessoBioSelfieDelegate {
    func onSuccessSelfie(_ result: AcessoBio.SelfieResult!) {
        // your code
    }
    
    func onErrorSelfie(_ errorBio: ErrorBio!) {
        // your code
    }
}

Ao efetuar uma captura de imagem com sucesso, este método será invocado e retornará um objeto do tipo SelfieResult com 2 atributos: base64 e encrypted.

- base64: pode ser utilizado caso queira exibir um preview da imagem em seu app;

- encrypted: deverá ser enviado na chamada de nossas APIs REST do unico check. Para mais informações detalhadas, visite nosso API Reference.

Ao ocorrer algum erro na captura de imagem, este método será invocado e retornará um objeto do tipo ErrorBio. Para mais informações detalhadas, visite nosso Objeto ErrorBio.

Captura de documentos

Tipos de documentos possíveis:

  • DocumentType.CNH
  • DocumentType.CNH_FRENTE
  • DocumentType.CNH_VERSO
  • DocumentType.CPF
  • DocumentType.RG_FRENTE
  • DocumentType.RG_VERSO
  • DocumentType.None

Preparar camêra

Para seguir com a abertura da câmera, primeiro deve-se prepará-la utilizando o método prepareDocumentCamera. Este método recebe como parâmetro a implementação do protocolo DocumentCameraDelegate e as credenciais de cadastro (os valores dessas informações são repassados em seu contato comercial).

@IBAction func startDocuments(_ sender: Any) {
    manager?.build().prepareDocumentCamera(self, config: SDKConfig())
}

Quando a câmera estiver preparada, o evento onCameraReadyDocument é disparado recebendo como parâmetro um objeto do tipo AcessoBioCameraOpenerDelegate e efetua a abertura da mesma pelo método openDocument passando um dos tipos de documento aceitos e seu delegate AcessoBioDocumentDelegate. Caso ocorra algum erro ao preparar a câmera, o evento onCameraFailedDocument é disparado. Você deve implementar este método aplicando as regras de negócio de seu App.

extension ViewController: DocumentCameraDelegate {
    func onCameraReadyDocument(_ cameraOpener: AcessoBioCameraOpenerDelegate!) {
        cameraOpener.openDocument(DocumentEnums.RG, delegate: self)
    }
    
    func onCameraFailedDocument(_ message: ErrorPrepare!) {
        // your code
    }
}

Métodos delegates da câmera

Para a configuração do delegate de sucesso e erro da captura da camera, você deve implementar a interface AcessoBioDocumentDelegate:

extension ViewController: AcessoBioDocumentDelegate {
    func onSuccessDocument(_ result: AcessoBio.DocumentResult!) {
        // your code
    }
    
    func onErrorDocument(_ errorBio: ErrorBio!) {
        // your code
    }
}

Ao efetuar uma captura de imagem com sucesso, este método será invocado e retornará um objeto do tipo DocumentResult com 2 atributos: base64 e encrypted.

- base64: pode ser utilizado caso queira exibir um preview da imagem em seu app;

- encrypted: deverá ser enviado na chamada de nossas APIs REST do unico check. Para mais informações detalhadas, visite nosso API Reference.

Ao ocorrer algum erro na captura de imagem, este método será invocado e retornará um objeto do tipo ErrorBio. Para mais informações detalhadas, visite nosso Objeto ErrorBio.

Mais informações

Acesse Site oficial

About

POC de implementação do produto Unico | Check - SDK em IOS com swift

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published