Integração React Native 0.59.x

Este tutorial tem como objetivo, guiar os desenvolvedores que desejam integrar seus aplicativos desenvolvidos em React Native.

Recomendamos que você use a versão estável mais recente do React Native, definida em package.json. A Inngage SDK foi verificado pela última vez na versão 0.61.5.


**Se o seu app se encontra na versão 0.59.x siga o seguinte passo-a-passo para realizar a integração da Inngage com seu app. Caso esteja na [versão 0.60.x acesse esse link](https://inngage.readme.io/v1.0/docs/integração-react-native-060x) **
[ 1. Configuração do projeto no Firebase](https://inngage.readme.io/docs/configuração-firebase-e-google-dev-console)

2. Configuração no painel Inngage

3. Configuração nativa iOS

4. Configuração nativa Android



Após fazer as configurações necessárias para que o seu código tenha acesso nativo às push notifications do Firebase iremos instalar a SDK da Inngage

1. Preparando o ambiente de produção

Instale as seguintes dependências externas que a SDK utiliza.

yarn add 'react-native-firebase' or npm install 'react-native-firebase'
yarn add 'react-native-device-info' or npm install 'react-native-device-info'
yarn add 'react-native-geolocation-service' or npm install 'react-native-geolocation-service'
yarn add 'react-native-inappbrowser-reborn' or npm install 'react-native-inappbrowser-reborn'
yarn add '@inngageregistry/inngage-react' or npm install '@inngageregistry/inngage-react'

2. Implementando a SDK

Importe 'GetPermission' do módulo da SDK.

import { GetPermission } from '@inngageregistry/inngage-react '

Este método deve ser chamado para que o usuário seja informado da chegada das notificações, quase sempre chamado dentro do 'componentDidMount()' mas dependendo da sua arquitetura pode ser chamado dentro do 'componentDidUnmount()'.

Essa função é responsável por autorizar o acesso à API da Inngage e ao Firebase Cloud Messaging e ativar os listeners de notificações.

let request = {
      friendlyIdentifier: 'xkl',
      appToken: '{Trocar pelo App_Token do aplicativo}',
      PROD: true,
      customData: false,
      customFields: {
      }
    }
  	await GetPermission(request);
}