omni_vitta_flutter 1.2.0 copy "omni_vitta_flutter: ^1.2.0" to clipboard
omni_vitta_flutter: ^1.2.0 copied to clipboard

PlatformAndroidiOS
unlisted

Omni + Vitta Flutter SDK for mobile applications.

image

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

image
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
}


image
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.