Ir para o conteúdo
Idioma: PT

Em que ordem vários registros são tratados?

Os registros são guardados na ordem em que você os grava, e as plataformas em geral agem sobre o primeiro que reconhecem. Tudo depois dele fica disponível a um software que procure, e invisível para todos os demais. A ordem é, portanto, uma decisão a tomar de propósito.

Guardados em ordem, tratados seletivamente

Uma mensagem NDEF é uma sequência ordenada, e um leitor recebe os registros na ordem em que foram gravados. Nada os reordena e nada os classifica por importância.

O que varia é o que o sistema operacional faz em seguida. Ele percorre os registros procurando algo que saiba tratar, e para no primeiro que encontra.

Por que o primeiro registro reconhecido vence

Porque tocar numa tag é um gesto único com um resultado esperado único. Uma plataforma que oferecesse um menu de todos os registros transformaria um toque numa decisão, o que anula o sentido.

Note a formulação: o primeiro registro que ela reconhece, não simplesmente o primeiro registro. Um registro inicial de um tipo que a plataforma ignora é pulado em vez de bloquear os que vêm depois. É isso que torna possível desenhar uma reserva.

Desenhar uma reserva

Ponha primeiro o registro sobre o qual você mais quer que se aja, e a reserva depois dele.

Uma URL seguida de um registro de texto simples funciona bem. Onde a URL é reconhecida, ela vence e o texto nunca aparece. Onde não é, o texto ao menos é legível por aquilo que olhar.

Inverter essa ordem quebra o arranjo nas plataformas que de fato reconhecem registros de texto, porque a reserva vence e a ação de verdade nunca roda.

Teste a ordem, não raciocine sobre ela

O comportamento das plataformas com vários registros variou entre versões e difere entre Android e iOS. Gravar uma tag e tocá-la com os dois leva dois minutos e resolve a questão para o seu público real.

O erro que isso causa

Uma tag gravada acrescentando registros um a um, na ordem em que vieram à cabeça, e depois instalada sem conferir qual deles dispara.

Ela em geral funciona no celular de quem a gravou, porque essa pessoa gravou o registro importante primeiro por acaso. Ela falha em outros lugares por razões que ninguém liga à ordem, e o diagnóstico é difícil precisamente porque a tag é lida perfeitamente e contém tudo o que deveria.

A correção é decidir a ordem em vez de herdá-la, e verificar com uma leitura que mostre todos os registros em vez de com um toque que mostra um.

Perguntas frequentes

Eu posso reordenar os registros sem regravar a tag?

Não. A ordem é a ordem em que eles estão guardados, então mudá-la quer dizer gravar a mensagem de novo. Numa tag desbloqueada isso é trivial, e numa tag bloqueada é impossível.

A mesma ordem se comporta igual no Android e no iPhone?

Não necessariamente, já que as duas plataformas reconhecem tipos de registro diferentes. Um registro ignorado por uma é pulado e tratado pela outra, o que pode fazer a mesma tag se comportar de modo diferente.

Existe um jeito de forçar o uso de um registro específico?

Não pelo lado da tag, além de pô-lo primeiro e escolher um tipo que a plataforma de destino reconheça. A decisão pertence ao sistema operacional e não é algo que uma tag possa sobrepor.

Os aplicativos veem os registros que o sistema ignorou?

Um aplicativo que leia a tag diretamente recebe a mensagem inteira e pode usar o registro que quiser. A seleção descrita aqui vale para o sistema decidindo o que fazer num toque.