Pular para o conteúdo principal

Implementação

Pré-requisito para startDeviceScan

O método startDeviceScan requer um token. Este token é temporário e deve ser gerado no seu backend por meio de uma requisição server-to-server para a nossa API antes de chamar o método do SDK.

Detalhes do Endpoint:

  • Método: POST
  • Path: /device_scan/token
  • Sandbox URL: https://d.sandbox.viewpkg.com/device_scan/token
  • Production URL: https://d.viewpkg.com/device_scan/token

Headers:

{
"Authorization": "YOUR_DEVICE_SCAN_API_KEY"
}

Body:

{
"session_id": "unique_session_id"
}

A resposta bem-sucedida desta API conterá o token que você deve repassar ao método startDeviceScan.

observação

O método de device scan pode ser executado de forma assíncrona. Portanto, não é necessário bloquear a thread principal para aguardar a resolução deste método. O usuário pode interagir normalmente com o app enquanto o device scan é processado em segundo plano.

observação

Recomendamos que o método de device scan seja executado o mais cedo possível. Como ele pode precisar de mais tempo de execução para coletar todos os dados, esta chamada antecipada é recomendada para que as informações mais completas do dispositivo sejam extraídas.



import 'dart:convert';
import 'dart:io';
import 'package:http/http.dart' as http;
import 'package:qitech_device_scan/qitech_device_scan.dart';

final _qitechDeviceScanPlugin = QitechDeviceScan();

// Etapa 1: Gerar o token temporário via requisição server-to-server
Future<String?> fetchDeviceScanToken(String sessionId) async {
final response = await http.post(
Uri.parse('<DEVICE_SCAN_API_URL>'),
headers: {
HttpHeaders.authorizationHeader: '<API_KEY>',
HttpHeaders.contentTypeHeader: 'application/json',
},
body: jsonEncode({'session_id': sessionId}),
);

if (response.statusCode == 200) {
final data = jsonDecode(response.body);
return data['token'] as String?;
}
return null;
}

// Etapa 2: Inicializar o SDK com o token obtido
final sessionId = '<SESSION_ID>';
final token = await fetchDeviceScanToken(sessionId);

if (token == null) {
print('Failed to fetch device scan token');
return;
}

final result = await _qitechDeviceScanPlugin.startDeviceScan(
token: token,
environment: CaaSEnvironment.sandbox,
sessionId: sessionId,
eventType: '<EVENT_TYPE>',
eventId: '<EVENT_ID>',
);

print('Device Scan result: $result');

Flutter Setup

Para utilizar o plugin do device scan, os seguintes passos são necessários:

Instalação

Inicialmente, é necessário executar o seguinte comando para instalar o plugin:

flutter pub add qitech_device_scan

O comando deve instalar a versão mais recente, que pode ser verificada em seu arquivo pubspec.yaml:

dependencies:
qitech_device_scan: ^1.0.0

Importação

Agora, basta importar o pacote para começar a utilizá-lo:

import 'package:qitech_device_scan/qitech_device_scan.dart';

Android Setup

Adicionar a referência do repositório android da Qi Tech em seu arquivo build.gradle:

allprojects {
repositories {
maven { url 'https://sdks.zaig.com.br/' }
...
}
}

Inicializar o serviço de AdMob ao adiconar o seguinte código em seu AndroidManifest.xml:

<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="<ADMOB_APP_ID>"/>

Caso não possua um ADMOB_APP_ID, entre em contato com o suporte.caas@qitech.com.br.

iOS Setup

Adicionar a referência do repositório iOS da Qi Tech em seu arquivo Podfile:

source 'https://cdn.cocoapods.org/'
source 'https://github.com/ZaigCoding/iOS.git'

Instalar as dependências diretamente através do cocoapods:

cd ios
pod install

ou através do flutter:

flutter build ios