Skip to content

Sincronização e offline

O SuperMobile é uma PWA — Progressive Web App. Isso significa que o app funciona dentro do navegador (Chrome, Edge, Safari) mas se comporta como um app nativo: pode ser instalado na home do celular, abre em tela cheia sem barra de endereço, e mantém parte do funcionamento mesmo sem internet.

Instalando como app

Quando você abre o site pela primeira vez no celular, o navegador pode oferecer um botão "Instalar" ou "Adicionar à tela inicial". Aceite — o ícone do SuperMobile vai pra tela inicial e a partir daí abre como app independente.

No desktop (Chrome/Edge), aparece um ícone de instalação na barra de endereço. Mesmo comportamento.

O que funciona offline

Sem internet, ainda funcionaNão funciona sem internet
Abrir o app, navegar entre menusCarregar lista de clientes/produtos novos
Ver telas que já foram carregadasSalvar pedido novo
Login com sessão ainda válida (token não expirou)Calcular preço de item (depende do backend)
Tema claro/escuroAprovar/criar liberação
Estrutura visual de todas as páginasBaixar PDF (se assinatura precisar do storage)

Resumindo: você navega, mas qualquer operação de negócio precisa de conexão.

Indicador de offline

No canto inferior direito aparece uma notificação fixa quando você fica sem conexão:

Sem conexão Você pode navegar pelo shell do app, mas recursos online podem ficar indisponíveis.

A notificação some sozinha quando a conexão volta. O app detecta status de rede via eventos online/offline do navegador.

Atualização automática do app

Quando o time da Supersys publica uma versão nova:

  • O app verifica atualizações a cada 60 segundos enquanto online
  • Também verifica ao focar a janela e ao alternar de aba
  • Quando há nova versão, aparece uma notificação fixa: "Atualizar app agora"
  • Você decide quando atualizar — clicando, a página recarrega com a versão nova
  • A atualização não interrompe trabalho em andamento; o aviso fica visível até você clicar

Como funciona o cache (técnico, mas útil)

O app usa Workbox (parte do PWA) com duas estratégias:

  • Assets do app (HTML, CSS, JavaScript, fontes, ícones): cacheados indefinidamente. Por isso o app abre offline.
  • APIs e dados de negócio (/api/*, /MOB_VENDAS/*): NetworkOnly — sempre tenta a rede. Não há cache de dados. Garante que você nunca veja dado desatualizado, mas precisa estar online para qualquer consulta.

Por que essa escolha? Pedidos, preços e estoque mudam frequentemente. Cachear dados de negócio criaria divergências entre vendedores que poderiam levar a vendas com preço errado.

Entrando offline com pedido em digitação

Importante: se você está digitando um pedido e perde conexão antes de salvar:

  • O que estiver na tela permanece — você pode continuar editando
  • Mas não consegue clicar Salvar (o servidor não responde)
  • Quando a conexão voltar, clique Salvar normalmente

Se você não tem certeza se a conexão voltou, olhe o canto inferior direito. Sem o aviso "Sem conexão" significa que tem rede.

Sincronização em background

Hoje, não. O app não tem sync queue automática que envia pedidos pendentes quando volta online — você precisa estar online no momento de salvar.

Se for um problema recorrente para o time comercial (vendedor em zona rural sem 4G), o time técnico pode adicionar um service worker com Background Sync API. É uma melhoria conhecida no roadmap.

Triagem rápida — suporte

SintomaCausa provávelAção
App não abre nem onlineCache antigo corrompidoLimpar dados do site no navegador, recarregar
"Sem conexão" persistente mesmo com Wi-Fi OKDNS travado, VPN bloqueando, servidor da Supersys instávelTestar abrir outra aba; conferir status do servidor
Notificação "Atualizar app agora" não someUsuário clicou X mas a versão antiga continua rodandoClicar "Atualizar app agora" ou recarregar manualmente (Ctrl+Shift+R)
Pedido sumiu depois de salvar offlineSalvar offline não funciona — não houve gravaçãoRefazer com conexão, conferir antes de fechar pedido
Lista de clientes não atualizaCache do app está em pé, mas API responde — precisa de "Atualizar"Clicar no botão Atualizar (ícone refresh) ou recarregar a página
App lento mesmo onlineBundle pesado em rede 3G/4G fracaEsperar primeira carga; depois fica em cache local
Login OK mas dashboard não carrega dadosToken válido localmente, mas API rejeitando (403/500)Reportar pro time técnico com hora/usuário

Para o time técnico

  • Manifest e Workbox configurados em vite.config.ts via vite-plugin-pwa.
  • registerType: 'prompt' — o app não atualiza silenciosamente, sempre pergunta.
  • globPatterns: ['**/*.{js,css,html,ico,png,svg,woff2}'] — assets cacheados.
  • runtimeCaching com NetworkOnly para /api/, /MOB_VENDAS/, /config.js.
  • Componente PwaStatus (canto inferior direito) escuta eventos online/offline e mostra/esconde notificação.
  • Sem IndexedDB para dados de negócio. Dados sensíveis (token, tenant) ficam em localStorage.
  • Atualização: setInterval checa novo SW a cada 60s, mais checagem em visibilitychange e focus.

Documentação interna · Supersys