Modo Offline
A aplicação Bemba suporta um modo offline permitindo continuar a trabalhar sem ligação à internet, depois sincronizar os dados quando a ligação for restabelecida.
Visão geral
┌─────────────────────────────────────────────────────────────────────────┐
│ MODO OFFLINE │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ ONLINE │ --> │ OFFLINE │ --> │SINCRONIZAÇÃO │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ Dados em Ações em Upload das │
│ tempo real fila de espera modificações │
│ │
└─────────────────────────────────────────────────────────────────────────┘
Funcionamento
Deteção de ligação
A aplicação deteta automaticamente:
| Estado | Descrição | Indicador |
|---|---|---|
| Online | Ligação ativa ao servidor | Verde |
| Offline | Sem ligação | Vermelho |
| Ligação lenta | Rede 2G ou instável | Laranja |
Um indicador é apresentado na barra de estado:
┌─────────────────────────────────────────┐
│ 🟢 Online │ 🔴 Offline │
│ ou │ Modo offline │
│ 🟠 Ligação │ 5 modificações │
│ lenta │ em espera │
└─────────────────────────────────────────┘
Cache
Os seguintes dados são automaticamente colocados em cache:
| Dados | Duração | Atualização |
|---|---|---|
| Listas (agregados, beneficiários) | 24h | Automática |
| Detalhes consultados | 1h | A pedido |
| Dados geográficos | 7 dias | Rara |
| Configuração | 24h | Automática |
Fila de espera
As modificações efetuadas offline são armazenadas localmente:
- Armazenamento: IndexedDB no navegador
- Ordem: As modificações têm carimbo temporal
- Prioridade: Tratamento na ordem de registo
- Persistência: Conservadas mesmo se o navegador for fechado
Utilização
Passar para modo offline
O modo offline ativa-se automaticamente quando:
- A ligação à internet é perdida
- O servidor não está acessível
- A rede está demasiado lenta
Também pode forçar o modo offline:
- Clique no indicador de ligação
- Selecione Trabalhar offline
Ações disponíveis offline
| Ação | Disponível | Notas |
|---|---|---|
| Consultar as listas | ✓ | Dados em cache |
| Ver os detalhes | ✓ | Se já consultados |
| Criar um agregado | ✓ | Em fila de espera |
| Modificar um agregado | ✓ | Em fila de espera |
| Criar uma reclamação | ✓ | Em fila de espera |
| Adicionar comentário | ✓ | Em fila de espera |
| Pesquisa avançada | ✗ | Requer servidor |
| Exportação Excel | ✗ | Requer servidor |
| Upload de documentos | ✗ | Requer servidor |
Indicadores visuais
Em modo offline, verá:
- Badge vermelho: Indicador offline
- Contador: Número de modificações em espera
- Ícone relógio: Nos elementos à espera de sync
- Faixa: Mensagem de aviso no topo da página
Sincronização
Sincronização automática
Quando a ligação volta:
- A aplicação deteta a reconexão
- A sincronização inicia automaticamente
- As modificações são enviadas uma a uma
- Os conflitos são sinalizados
Sincronização manual
Para forçar a sincronização:
- Clique no indicador de ligação
- Selecione Sincronizar agora
- Acompanhe a progressão
Progressão
┌─────────────────────────────────────────────────────────────────┐
│ SINCRONIZAÇÃO EM CURSO │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ████████████████████░░░░░░░░░░ 60% │
│ │
│ ✓ Agregado MEN-2026-001 sincronizado │
│ ✓ Agregado MEN-2026-002 sincronizado │
│ ⟳ Reclamação PLT-2026-003 em curso... │
│ ○ Comentário em espera │
│ ○ Agregado MEN-2026-004 em espera │
│ │
│ 3/5 elementos sincronizados │
│ │
└─────────────────────────────────────────────────────────────────┘
Gestão de conflitos
Um conflito ocorre quando:
- Os mesmos dados foram modificados online e offline
- Os dados foram eliminados online
┌─────────────────────────────────────────────────────────────────┐
│ CONFLITO DETETADO │
├─────────────────────────────────────────────────────────────────┤
│ │
│ O agregado MEN-2026-001 foi modificado no servidor enquanto │
│ estava offline. │
│ │
│ As suas modificações: Servidor: │
│ - Nome: Diallo Mamadou - Nome: Diallo M. │
│ - Tel: +245955123456 - Tel: +245955999999 │
│ │
│ ┌──────────────────┐ ┌──────────────────┐ │
│ │ Manter as minhas │ │ Usar o servidor │ │
│ └──────────────────┘ └──────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
Opções de resolução:
| Opção | Descrição |
|---|---|
| Manter as minhas modificações | As suas alterações substituem o servidor |
| Usar o servidor | Os dados do servidor são conservados |
| Fundir | Escolher campo a campo (se disponível) |
Armazenamento local
IndexedDB
Os dados são armazenados em IndexedDB:
| Store | Conteúdo |
|---|---|
sync_queue | Modificações em espera |
cached_data | Dados consultados |
sync_meta | Metadados de sync |
Capacidade
| Navegador | Limite típico |
|---|---|
| Chrome | Até 80% do disco |
| Firefox | Até 2 GB |
| Safari | 50-100 MB |
| Edge | Até 80% do disco |
Limpeza
Para libertar espaço:
- Abra os Parâmetros da aplicação
- Secção Armazenamento local
- Clique em Limpar a cache
Limpar a cache elimina os dados não sincronizados! Sincronize primeiro.
Boas práticas
Antes de passar para offline
- Sincronize: Certifique-se de ter os dados mais recentes
- Consulte: Abra as fichas de que vai precisar
- Verifique: Confirme que nenhuma modificação está em espera
Durante o modo offline
- Limite as modificações: Evite grandes volumes
- Anote os conflitos potenciais: Evite modificar dados partilhados
- Verifique o armazenamento: Monitorize o espaço disponível
Ao voltar online
- Sincronize imediatamente: Não atrase
- Verifique os conflitos: Resolva-os rapidamente
- Confirme: Verifique que tudo está sincronizado
Limitações
Não disponível offline
- Pesquisa global
- Exportação de relatórios
- Upload de ficheiros
- Criação de ciclos de pagamento
- Validação de documentos
- Notificações em tempo real
Limites técnicos
- Tamanho máx: ~50 MB de dados em cache
- Duração máx: 7 dias sem sincronização
- Modificações: 100 elementos máx em fila de espera
Resolução de problemas
A sincronização falha
- Verifique a sua ligação à internet
- Tente atualizar a página
- Limpe a cache e tente novamente
- Contacte o suporte se o problema persistir
Dados em falta em modo offline
- Os dados devem ter sido consultados pelo menos uma vez
- Abra as fichas necessárias antes de passar para offline
- Utilize a função "Descarregar para offline" se disponível
O navegador apresenta "Armazenamento insuficiente"
- Limpe a cache de outros sites
- Elimine os dados antigos da aplicação
- Utilize um navegador com mais capacidade
Compatibilidade
| Navegador | Suporte |
|---|---|
| Chrome 90+ | ✓ Completo |
| Firefox 85+ | ✓ Completo |
| Safari 15+ | ✓ Limitado |
| Edge 90+ | ✓ Completo |
| Chrome Mobile | ✓ Completo |
| Safari Mobile | ✓ Limitado |
A aplicação pode ser instalada como PWA para uma melhor experiência offline. Consulte o guia de instalação PWA.