SDK Captura de Documentos React Native
v1.0.0
Introdução
Os SDKs de Captura de Documentos permitem a realização de capturas pelo usuário dentro de sua aplicação. Essas capturas passam por validações que identificam o tipo de documento e que avaliam a qualidade da imagem capturada, instruindo o usuário através de feedbacks visuais.
Todas as informações coletadas são dados relacionados apenas ao dispositivo do usuário.
É necessário que o usuário conceda permissão de acesso à câmera do dispositivo para capturar e enviar seu documento.
O SDK respeita a política de privacidade da Google e da Apple, para a captura dos dados do dispositivo e o nível de permissão atribuído pelo usuário (usuário do dispositivo).
Instalação
npm install csdocumentoscopy-react-native
"dependencies": {
...
"csdocumentoscopy-react-native": "git+https://github.com/ClearSale/DocumentosCopyReactNativePlugin.git",
...
}
Android
Requisitos
- Versão do sistema operacional Android: v5.0 (API v21)
- compileSdkVersão: 34
- targetSdkVersion: 31
- com.google.android.material:material: 1.5.0
- androidx.compose.material:material: 1.5.4
Instalação
Adicione um arquivo clearsale.gradle.env
na raiz do seu projeto de react-native.
Esse arquivo deve conter as seguintes propriedades:
CS_DOCUMENTOSCOPY_TEC_ARTIFACTS_FEED_URL=ARTIFACTS_FEED_URL // valor fornecido pela clear sale
CS_DOCUMENTOSCOPY_TEC_ARTIFACTS_FEED_NAME=ARTIFACTS_FEED_NAME // valor fornecido pela clear sale
CS_DOCUMENTOSCOPY_TEC_USER=USERNAME // valor fornecido pela clear sale
CS_DOCUMENTOSCOPY_TEC_PASS=ACCESSTOKEN // valor fornecido pela clear sale
CS_DOCUMENTOSCOPY_VERSION=LAST_VERSION // valor da última versão
Para aplicações que usam o framework Expo é necessário acesso aos diretórios nativos e adição do seguintes repositórios no arquivo
build.gradle
do seu projeto (isso é necessário caso você deseje rodar a partir da Expo CLI - caso você rode pelo Android Studio, isso não é necessário):
def setupEnvFile(searchParam) {
if (searchParam !== null && System.properties[searchParam] !== null) {
return System.properties[searchParam]
}
if (System.properties['ENV_FILE_PATH'] == null) {
// First try searching on project root.
def projectFileEnv = new File("$rootProject.rootDir/../clearsale.gradle.env")
def projectFileEnvExists = projectFileEnv.exists()
if (projectFileEnvExists) {
System.properties['ENV_FILE_PATH'] = projectFileEnv.path
} else {
System.properties['ENV_FILE_PATH'] = System.env.DIRNAME ?: System.env.PWD + "/../clearsale.gradle.env"
}
}
file(System.properties['ENV_FILE_PATH']).readLines().each() {
def (key, value) = it.tokenize('=');
if (key !== null && value !== null) {
System.properties[key] = value
} else {
throw new InvalidUserDataException("[CSDOCUMENTOSCOPY SDK] - Invalid value for clearsale.gradle.env. Received key: $key, value: $value")
}
}
if (searchParam !== null) {
return System.properties[searchParam]
}
return null
}
setupEnvFile()
rootProject.allprojects {
repositories {
google()
mavenCentral()
maven {
url System.properties['CS_DOCUMENTOSCOPY_TEC_ARTIFACTS_FEED_URL']
name System.properties['CS_DOCUMENTOSCOPY_TEC_ARTIFACTS_FEED_NAME']
credentials {
username System.properties['CS_DOCUMENTOSCOPY_TEC_USER']
password System.properties['CS_DOCUMENTOSCOPY_TEC_PASS']
}
authentication {
basic(BasicAuthentication)
}
}
}
}
iOS
Requisitos
- Versão do sistema operacional iOS: 13.4 ou superior
- Versão do projeto Swift 4.2+: funciona com Xcode superior ao 14
Instalação
No arquivo Podfile
de seu projeto adicione o seguinte código:
platform :ios, '13.4'
use_frameworks!
target 'NOME_DO_SEU_PROJETO' do
pod 'CSDocumentoscopySDK', :git => 'URL DO REPOSITÓRIO ENVIADO PELA CLEARSALE', :tag => 'VERSÃO AQUI'
end
Adicione também (caso não tenha ainda) a chave NSCameraUsageDescription
em seu Info.plist
.
Instruções de uso
Importe o plugin no seu projeto e use o useCSDocumentosCopy
hook para receber uma função open
que irá chamar a SDK nativa do dispositivo.
O resultado da função open
é uma promise que pode retornar os seguintes valores:
type CSDocumentosCopyResult = {
documentType: string | null;
sessionId: string | null;
};
Caso a promise
seja rejeitada, ela retorna o erro que causou a rejeição (CSDocumentoscopySDKError no Android
, CSDocumentoscopyError no iOS
e UserCancel
).
Exemplo de uso
import type { CSDocumentosCopyResult } from 'csdocumentoscopy-react-native';
import { useCSDocumentosCopy } from 'csdocumentoscopy-react-native';
const reactComponent = () => {
const [clientId, setClientId] = React.useState<string>('');
const [clientSecretId, setClientSecretId] = React.useState<string>('');
const [identifierId, setIdentifierId] = React.useState<string>('');
const [cpf, setCpf] = React.useState<string>('');
const [sdkResponse, setSdkResponse] =
React.useState<CSDocumentosCopyResult | null>(null);
const { open: openCsDocumentosCopy } = useCSDocumentosCopy();
...
return <TouchableOpacity
style={styles.button}
onPress={async () => {
try {
const { sessionId, documentType } = await openCsDocumentosCopy({
clientId,
clientSecretId,
identifierId,
cpf,
vocalGuidance,
primaryColor,
secondaryColor,
tertiaryColor,
titleColor,
paragraphColor
});
setSdkResponse({ documentType, sessionId });
console.log(`Received documentType: ${documentType}`);
console.log(`Received sessionId: ${sessionId}`);
} catch (e) {
// Possible errors are CSDocumentoscopySDKError and UserCancel.
console.error(e);
Alert.alert(
'SDKError',
'Something went wrong, check you dev console',
[{ text: 'OK' }]
);
setSdkResponse(e.toString());
}
}}
>
<Text style={styles.buttonTitle}>Open CSDocumentosCopy</Text>
</TouchableOpacity>
}
Executando o aplicativo de exemplo (sample)
- Conecte um dispositivo físico (
Android
ouiOS
- o nossoSDK
não roda em emuladores, apenas em dispositivos fisícos) à sua máquina de desenvolvimento. - Clone esse repositório e rode
yarn
. Como esse projeto usayarn workspaces
, deve-se usar o comandoyarn
para instalar as dependências. - Coloque suas credenciais no arquivo
clearsale.gradle.env
(crie ele e adicione as informações conforme descrito na etapa de instalação) na raiz do projeto de exemplo e adicione também as credenciais no arquivoexample/ios/Podfile
. - Rode
yarn example android|ios
(no caso doiOS
é necessário rodarpod install
na pastaexample/ios
primeiro).- Caso queira rodar com o Android Studio o app de Android, é só abrir a pasta
example/android
no Android Studio. - Caso queira rodar com o XCode o app de iOS, é só abrir o
CsdocumentoscopyReactNativeExample.xcworkspace/
com o XCode.
- Caso queira rodar com o Android Studio o app de Android, é só abrir a pasta
- Ao pressionar o botão
Open CSDocumentosCopy
o SDK DocumentosCopy iniciará. Após completar o fluxo o aplicativo retorna odocumentType
esessionId
.
Detalhes de privacidade
Uso de dados
Todas as informações coletadas pelo SDK da ClearSale são com exclusiva finalidade de prevenção à fraude e proteção ao próprio usuário, aderente à política de segurança e privacidade das plataformas Google e Apple e à LGPD. Por isso, estas informações devem constar na política de privacidade do aplicativo.
Tipo de dados coletados
O SDK da ClearSale coleta as seguintes informações do dispositivo :
- Características físicas do dispositivo/ hardware (Como tela, modelo, nome do dispositivo)
- Características de software (Como versão, idioma, build, controle parental)
- Informações da câmera
- Licença de Uso
Ao realizar o download e utilizar nosso SDK você estará concordando com a seguinte licença:
Todos os direitos são reservados, sendo concedida a permissão para usar o software da maneira como está, não sendo permitido qualquer modificação ou cópia para qualquer fim. O Software é licenciado com suas atuais configurações “tal como está” e sem garantia de qualquer espécie, nem expressa e nem implícita, incluindo mas não se limitando, garantias de comercialização, adequação para fins particulares e não violação de direitos patenteados. Em nenhuma hipótese os titulares dos Direitos Autorais podem ser responsabilizados por danos, perdas, causas de ação, quer seja por contrato ou ato ilícito, ou outra ação tortuosa advinda do uso do Software ou outras ações relacionadas com este Software sem prévia autorização escrita do detentor dos direitos autorais.
Copyright © 2022 ClearSale
Updated 2 months ago