Pular para o conteúdo principal

Verificar ao voltar

Quando alguém volta ao seu app depois de um tempo (a aba fica visível de novo, a janela recebe foco ou o AppState do React Native fica ativo), a última sonda pode estar velha. useRecheckOnReturn faz uma nova sonda na hora, em vez de esperar a próxima verificação agendada.

Ele é opcional, por tela. Por padrão o detector nem sequer assina o sinal de primeiro plano; assim, uma tela que não se importa não paga nada.

import { useRecheckOnReturn } from '@rogeriodocarmo/offline-detector-web'; // ou '-native'

function Checkout() {
const online = useRecheckOnReturn({
checkingFeedback: 'brief',
onResult: (isOnline) => console.log('de volta ao app, online:', isOnline),
});
return <Pay disabled={!online} />;
}

Opções​

OpçãoPadrãoNotas
checkingFeedback'none''brief' ou 'none'. Se a verificação ao voltar fica visível.
onResultnenhum(isOnline: boolean) => void, chamado após cada verificação ao voltar

O hook devolve o último booleano conhecido: false somente quando o app está offline. Ele se atualiza a cada mudança de estado, não apenas depois de um retorno.

'brief' versus 'none'​

Origem da verificação'none''brief'
Nova sonda ao voltar ao appnada visívelas peças mostram um breve estado "Verificando…"
O usuário toca em Tentar novamenteo botão mostra "Verificando…"igual (um Tentar novamente tocado sempre o mostra)
Sonda agendada com espera crescente, offlinenada visívelnada visível (só verificações disparadas ao voltar)
Online, sem problemanada visívelnada visível: uma verificação breve bem-sucedida não mostra nada

Regras do 'brief':

  • O estado "Verificando…" só aparece se a verificação ainda estiver pendente após 150 ms e, depois de exibido, permanece por pelo menos 400 ms. Isso evita um lampejo em rede rápida e uma cintilação em rede lenta.
  • Ele nunca move o layout: um indicador de carregamento substitui o rótulo dentro da mesma caixa.

Detalhes que vale saber​

  • O hook assina o adapter apenas enquanto o componente está montado e cancela a assinatura ao desmontar. onResult não é chamado depois de desmontar.
  • Vários hooks montados compartilham uma sonda, porque o core elimina verificações simultâneas duplicadas.
  • A opção recheckOnForeground do próprio core continua desligada. Este hook é o único lugar que verifica de novo ao voltar.
  • useCheckingFeedback() é para pacotes de interface: informa 'brief' enquanto uma verificação ao voltar iniciada por um hook 'brief' está pendente, e 'none' no resto do tempo.

Veja a referência do react para os tipos exatos.