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>
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
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"))
]
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.
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)
.
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
}
}
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.
- 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.
Tipos de documentos possíveis:
- DocumentType.CNH
- DocumentType.CNH_FRENTE
- DocumentType.CNH_VERSO
- DocumentType.CPF
- DocumentType.RG_FRENTE
- DocumentType.RG_VERSO
- DocumentType.None
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
}
}
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.
- 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.
Acesse Site oficial