omni_vitta_flutter 1.2.0 omni_vitta_flutter: ^1.2.0 copied to clipboard
Omni + Vitta Flutter SDK for mobile applications.
Omni + Vitta | Módulos de Integração em Flutter [BETA] #
Guia de Integração da Biblioteca Omni Saúde para Flutter. Build 1.2.0 [Beta]
Overview
Este documento tem como objetivo elencar a documentação oficial para implantação do Omni SDK para Flutter, abrangendo pontos estruturais para com a integração do package no pipeline do seu projeto, parâmetros obrigatórios e boas práticas.1. Preparação para integração
É de extrema importância que, antes do início da implementação, ficar atento aos requisitos mínimos para que o plugin funcione corretamente. Eles devem ser seguidos estritamente para garantir o regular funcionamento.1.1 Requisitos mínimos e Setup
Path | Nome | Versão necessária |
---|---|---|
android/app/build.gradle | minSDK | >= 21 |
android/app/build.gradle | targetSDK | >= 33 |
android/app/build.gradle | compileSDKVersion | >= 33 |
✅ Seu arquivo app/build.gradle deve se parecer com isto:
// [...] inicio do código
android {
namespace "com.example.flutter_application_1"
compileSdkVersion 33
ndkVersion flutter.ndkVersion
// [...] meio do código
defaultConfig {
applicationId "com.example.flutter_application_1"
minSdkVersion 21
targetSdkVersion 33
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
// [...] restante do código
}
Path | Nome | Versão necessária |
---|---|---|
ios/Podfile | iOS Version | >= 12 |
✅ Seu Podfile deve se parecer com isto:
platform :ios, '12.0' # ou versão maior
# Adicione a linha a seguir, caso não possua:
$iOSVersion = '12.0' # ou versão maior
post_install do |installer|
installer.pods_project.build_configurations.each do |config|
config.build_settings["EXCLUDED_ARCHS[sdk=*]"] = "armv7"
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = $iOSVersion
end
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
target.build_configurations.each do |config|
if Gem::Version.new($iOSVersion) > Gem::Version.new(config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'])
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = $iOSVersion
end
end
end
end
⚠️ Importante
Além deste requerimento mínimo de versão nos dispositivos iOS, é necessário justificar o uso da permissão de câmera caso não esteja justificado. O módulo utiliza isto na etapa de identificação do remédio, para isso deve ser feita uma alteração no arquivo Info.plist
do projeto, como a seguir:
[...] inicio do código
<string>$(FLUTTER_BUILD_NUMBER)</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSCameraUsageDescription</key> # --> Adicione esta linha
<string>Permita o acesso à câmera para capturar fotos dos medicamentos e prescrições. Isso permitirá que você tire fotos de seus medicamentos e envie imagens de receitas médicas para armazená-las em sua carteira digital de medicamentos.</string> # --> Adicione esta linha
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIMainStoryboardFile</key>
[...] restante do código
3. Utilizando a chamada do Widget para acionar o SDK
Após a importação do pacote via Github, o processo de chamada do Widget para iniciar o processo precisa de muita atenção.A referência ao pacote deverá ser importada no arquivo .dart desejado, e deve-se assegurar o fato de já ter retido em alguma variável os valores que foram consumidos na API no seu respectivo documento, os valores token
e omniId
.
3.1 Chamada para o StartOmniHealth()
A função chamada para iniciação do processo de compra possuirá inicialmente cinco parâmetros obrigatórios, são eles: Parâmetro | Tipo | Função |
---|---|---|
token | String | Token validador para inicio do processo |
omniId | String | Armazenar ID do usuário que efetua a compra |
prescription | List | Objeto da(s) prescrição(ões) utilizada durante a compra |
onFinish | VoidCallback | Função definida para ser executada após finalização do processo Omni |
isProd | bool | Alterne para true caso queira rodar no ambiente de produção, e false para homologação |
medications | Map<String, dynamic> | Definido para ser enviado o JSON com os dados da receita afm de localizar os medicamentos |
3.2 Importando o package para a classe desejada
✅ Deve-se importar a referência no arquivo em que o StartOmniHealth() será chamado, exemplo:
import 'package:omni_vitta_flutter/omni_vitta_flutter.dart';
[...] restante da classe
No exemplo abaixo, segue-se uma classe completa, do ideal para que o componente funcione corretamente, assegure-se de ter sucesso em conseguir os dados necessários para os parâmetros.
import 'package:omni_vitta_flutter/omni_vitta_flutter.dart';
class ExampleView extends StatelessWidget {
Widget build(BuildContext context) {
return TextButton(
child: Text('Call Omni Process')
onPressed: () async {
final parameters = await exampleAllRequiredParameters(); <- sua função para pegar os dados necessários.
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => StartOmniHealth(
token: parameters.token,
omniId: parameters.omniId,
prescription: parameters.prescription,
onFinish: () => funcaoAoFinalizarExemplo(),
isProd: false,
medications: parameters.prescriptionData
),
),
),
}
);
}
}
Após essa chamada, o processo de compra personalizado Vitta será montado, dando possibilidade ao usuário continuar sua compra.