Pular para o conteúdo principal

Criação de aplicativo móvel personalizado

Guia para criar um aplicativo móvel AirysChat com marca personalizada, notificações push, deep linking e envio para a loja de aplicativos.

Notificações push

O AirysChat suporta notificações push móveis através do Firebase Cloud Messaging (FCM). Existem dois caminhos de entrega, dependendo da sua configuração:
  • Servidor Relay (padrão): Instâncias self-hosted sem credenciais do Firebase roteiam as notificações através do servidor relay do AirysChat, que as encaminha para o aplicativo móvel oficial do AirysChat.
  • FCM Direto: Instâncias com Firebase configurado enviam notificações diretamente para o seu aplicativo móvel personalizado.
Você deve usar os aplicativos oficiais para ambas as plataformas ou builds personalizados para ambas — não é suportado misturá-los. Para mais detalhes, consulte a documentação de notificações push.

Configurando o Firebase

Para enviar notificações push para seu aplicativo com marca personalizada, você precisa configurar o Firebase tanto no aplicativo móvel quanto no servidor AirysChat.

Passo 1: Criar um projeto Firebase

  1. Acesse o Firebase Console e crie um novo projeto (ou use um existente).
  2. Registre seu aplicativo Android com o nome do seu pacote (ex., com.suaempresa.app).
  3. Registre seu aplicativo iOS com o seu bundle identifier (ex., com.suaempresa.app).

Passo 2: Baixar arquivos de configuração do Firebase

Baixe os arquivos de configuração específicos da plataforma nas configurações do seu projeto Firebase:
  1. Em Project Settings > General (Configurações do Projeto > Geral), encontre seu aplicativo Android e clique em Download google-services.json.
  2. Coloque o arquivo na raiz do repositório do aplicativo móvel.

Passo 3: Configurar variáveis de ambiente do aplicativo móvel

Atualize seu arquivo .env para apontar para os arquivos de configuração do Firebase:
EXPO_PUBLIC_ANDROID_GOOGLE_SERVICES_FILE=./google-services.json
EXPO_PUBLIC_IOS_GOOGLE_SERVICES_FILE=./GoogleService-Info.plist
Em seguida, regere o código nativo para que a nova configuração seja detectada:
pnpm generate

Passo 4: Gerar uma conta de serviço do Firebase

O servidor AirysChat precisa de uma conta de serviço para enviar notificações push via a API FCM v1.
  1. No Firebase Console, vá para Project Settings > Service accounts (Configurações do Projeto > Contas de serviço).
  2. Clique em Generate new private key (Gerar nova chave privada) para baixar um arquivo JSON de credenciais.
Mantenha este arquivo seguro. Ele concede acesso para enviar notificações push em nome do seu projeto Firebase.

Passo 5: Configurar o servidor AirysChat

Na sua instalação do AirysChat, navegue até Super Admin > App Config e defina o seguinte:
Chave de configValor
FIREBASE_PROJECT_IDSeu ID de projeto do Firebase (ex., my-project-12345)
FIREBASE_CREDENTIALSO conteúdo completo do arquivo JSON da conta de serviço
Quando ambos os valores estiverem definidos, o servidor enviará notificações push diretamente para o FCM em vez de usar o servidor relay.

Verificando a configuração

  1. Crie e instale o aplicativo personalizado em um dispositivo (pnpm run:ios ou pnpm run:android).
  2. Faça login na sua instância do AirysChat a partir do aplicativo móvel.
  3. A partir de outra sessão de navegador, envie uma mensagem para uma conversa atribuída ao agente conectado.
  4. O dispositivo deve receber uma notificação push.
Notificações push não funcionam em simuladores iOS. Você deve usar um dispositivo físico para testar.

Deep linking

O deep linking permite que os usuários toquem no URL de uma conversa do AirysChat (ou em uma notificação push) e sejam levados diretamente para essa conversa no aplicativo móvel. O aplicativo suporta dois mecanismos:
  • Custom URL scheme: airyschatapp:// — usado para callbacks de SSO e roteamento interno.
  • Universal Links (iOS) / App Links (Android): https://<seu-dominio>/app/accounts/*/conversations/* — usado para abrir URLs web diretamente no aplicativo.

Como funciona

Quando o aplicativo recebe um deep link, o React Navigation o compara com o padrão de caminho configurado e navega até a tela da conversa:
https://<seu-dominio>/app/accounts/{accountId}/conversations/{conversationId}
Isso funciona em todos os estados do aplicativo — quer o aplicativo esteja em primeiro plano, em segundo plano ou tenha sido encerrado. Os toques em notificações push também usam esse mesmo fluxo para navegar até a conversa relevante.

Configuração do aplicativo móvel

O aplicativo usa o suporte integrado do Expo para deep linking. Em app.config.ts, atualize o seguinte para corresponder ao seu domínio:
Atualize o associated domain para a URL de instalação do seu AirysChat:
ios: {
  associatedDomains: ['applinks:seu-dominio.com'],
}
O Expo prebuild grava isso no arquivo .entitlements automaticamente.
Após fazer as alterações, regere o código nativo:
pnpm generate

Configuração do servidor

O servidor AirysChat serve dinamicamente os arquivos de verificação que Android e iOS exigem para confirmar que seu aplicativo possui o domínio. Configure as seguintes variáveis de ambiente na sua instalação do AirysChat:
O servidor disponibiliza um arquivo apple-app-site-association em https://<seu-dominio>/.well-known/apple-app-site-association. Nenhuma configuração adicional é necessária, exceto garantir que a instalação do seu AirysChat esteja acessível no domínio especificado em associatedDomains.

Build & Submissão usando EAS

Usamos o Expo Application Services (EAS) para criar, implantar e enviar o aplicativo para as lojas de aplicativos. EAS Build e Submit estão disponíveis para qualquer pessoa com uma conta Expo, independentemente de você pagar pelo EAS ou usar nosso plano Gratuito. Você pode se inscrever no Expo EAS.

Crie o aplicativo

Build iOS

pnpm run build:ios:local

Build Android

pnpm run build:android:local

Envie o aplicativo

Submissão iOS

pnpm submit:ios

Submissão Android

pnpm submit:android
Ao executar o comando acima, será solicitado que você forneça um caminho para um arquivo binário local do aplicativo. Selecione o arquivo que você criou na etapa anterior:
  • iOS: arquivo .ipa
  • Android: arquivo .aab
Pode levar algum tempo para concluir o processo de envio. Você verá o status do envio no seu terminal.