Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev1.1.1

navigation_history_observer

Um Flutter NavigatorObserver que armazena uma coleção de histórico de rotas empurradas, bem como o histórico de rotas removidas.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
31,3 mil
Curtidas
70
Pontos Pub
160

Instalar pacote

flutter pub add navigation_history_observer

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

navigation_history_observer é um Flutter NavigatorObserver que rastreia e armazena o histórico de rotas empurradas e removidas durante a navegação. Ele fornece aos desenvolvedores acesso ao fluxo completo de navegação, permitindo funcionalidades como personalização do comportamento do botão de voltar, análise ou depuração de padrões de navegação. O observador captura transições de rota em tempo real em todas as plataformas compatíveis, incluindo dispositivos móveis, web e desktop. Integra-se perfeitamente com o sistema de roteamento do Flutter e requer configuração mínima por meio do comando pub add.

Casos de uso

  • Depuração de fluxos de navegação
  • Implementando lógica personalizada de navegação de volta
  • Rastreamento da jornada do usuário para análise
  • Recriando o estado de navegação após reinicialização do aplicativo
  • Monitoramento de transições de rota em tempo real

Principais recursos

  • Rastreia tanto rotas empurradas quanto popadas
  • Fornece o histórico completo de navegação
  • Suporte multiplataforma (Android, iOS, Web, macOS, Windows, Linux)
  • Integração simples com o Navigator
  • Monitoramento em tempo real de alterações de rota

Indicado para

  • Desenvolvedores construindo fluxos de navegação complexos
  • Aplicativos que exigem análises detalhadas de navegação
  • Equipes que implementam comportamentos de navegação personalizados
  • Depuração de problemas relacionados a rotas
  • Aplicações que precisam da restauração de estado

Considerações

  • Pode aumentar o uso de memória com pilhas de navegação profundas
  • Requer gerenciamento manual dos dados de histórico
  • Não adequado para necessidades leves de navegação
  • Limitado ao uso com MaterialApp ou CupertinoApp
  • Deve ser registrado corretamente com observadores do navegador

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

Flutter Navigation History Observer

A flutter navigation observer that adds access to lists that track the navigation stack both forwards and backwards.

Usage

This is a singleton, meaning you can access its single instance from anywhere by calling the default constructor.

To initialize the first instance you must add it to your app's navigator observers list like so:

void main() {
  runApp(MaterialApp(
    home: Container(),
    navigatorObservers: [NavigationHistoryObserver()],
  ));
}
History:

To access the history, use NavigationHistoryObserver().history from anywhere in your code.

Use NavigationHistoryObserver().top to peek on the navigation stack's top element - which would be the current route.

Popped routes (forwards history):

To access the popped routes, use NavigationHistoryObserver().poppedRoutes from anywhere in your code.

UseNavigationHistoryObserver().next to get the most recent popped route.

This feature is intended to track the pages visited by the user, rather than navigating forwards. Please keep in mind that popped routes have already been disposed, meaning that you can't simply navigate to them as is via Navigator.push(context, route).

If you'd still like to navigate forwards, you may try Navigator.pushNamed(context, name), whereas the name should be extracted from route.settings.name provided that you're using named routes in your app.
However, there's no guarantee that it'll work.

Nevertheless, I discourage having forwards-navigation in your app.

History Change Stream:

The NavigationHistoryObserver class holds a StreamController that broadcasts each time the navigation stack changes.

Use NavigationHistoryObserver().historyChangeStream.listen((change) => action) to listen for changes.

The change object is of type HistoryChange. It holds the following properties:

  1. action - a NavigationStackAction enum reporting the action that caused this change. Values: push, pop, remove, replace.
  2. newRoute - the new route that was added/removed from the stack.
  3. oldRoute - the old route that was in place before this action happened.

This provides you with an easy-to-use interface that allows updating states across your app whenever the navigation stack changes. See the example for basic usage.

Developer's Note:

The history and poppedRoutes getters return clones of the actual private collections as BuiltLists, meaning they're immutable. To change these collections, use the default Navigator as you normally would, and they'll update as you navigate throughout your app.

Special Thanks

  • Shoutout to the Flutter Israel Developers community for being supportive and encouraging me to create this package.
  • Special thanks to Sahar Vanunu for giving me the original idea for this package.

Categorias

Dependências

Lista de dependências 1 itens

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.