¿Qué es el TNF, y por qué cambia lo que pasa al tocar?
El TNF, campo de nombre de tipo, son tres bits presentes en todo registro NDEF. Dice al lector cómo interpretar el campo de tipo que sigue, y por tanto qué clase de cosa es la carga útil. Ponlo mal y la etiqueta es perfectamente válida, perfectamente legible, y no hace absolutamente nada.
Tres bits con un gran cometido
Android lo dice sin rodeos: un registro NDEF lógico contiene siempre un TNF de tres bits que aporta el tipado de alto nivel del resto del registro. No describe la carga útil directamente, describe cómo leer el campo de tipo que describe la carga útil.
Un nivel de indirección, de tres bits de ancho, y decide si tocar tu etiqueta abre un navegador o no hace nada.
Los valores y lo que significan
La referencia de Android enumera siete constantes, que son el conjunto completo.
| Valor | El campo de tipo contiene | Uso habitual |
|---|---|---|
| Bien conocido | Un tipo definido por el NFC Forum | URL, texto, la mayoría de las etiquetas corrientes |
| Medio MIME | Un tipo MIME | Tarjetas de contacto, cargas estructuradas |
| URI absoluto | Un URI absoluto según el RFC 3986 | Raro, se confunde con facilidad con el tipo URI bien conocido |
| Tipo externo | Un nombre de tipo externo | Registros propios de una aplicación, incluida su apertura |
| Vacío | Nada, el registro está vacío | Una etiqueta formateada sin contenido |
| Desconocido | Nada aprovechable | Carga útil de tipo no declarado |
| Sin cambio | Nada, se usa para el troceado | Continuación de una carga partida |
Qué pasa cuando está mal
Nada espectacular, que es justo el problema. La etiqueta se lee, el registro se encuentra, y la plataforma concluye que no tiene nada sobre lo que actuar.
El error más frecuente es escribir una dirección web como URI absoluto cuando la plataforma espera un registro URI bien conocido. Los dos son legítimos, los dos llevan la misma dirección, y solo uno dispara el comportamiento que la gente espera.
El segundo más frecuente es escribir una URL como texto sin formato. La dirección se ve en una herramienta de lectura, así que la etiqueta parece correcta, y ningún navegador se abre porque un registro de texto no es una petición de ir a ninguna parte.
Lo que esto significa en la práctica
Usa una herramienta que ofrezca los tipos de contenido por su nombre en lugar de pedirte que ajustes campos. Elegir «URL» y escribir una dirección produce un registro correcto. Elegir «texto» y escribir una dirección produce una etiqueta válida que no hace nada.
Cuando una etiqueta se lee pero no actúa, comprueba el tipo de registro antes que cualquier otra cosa. Es lo primero que hay que sospechar y es casi nunca lo que la gente mira, porque el contenido está ahí delante y parece correcto.
Android ofrece métodos auxiliares para construir registros bien formados, y su documentación recomienda usarlos en lugar de montar los campos a mano. Ese consejo se generaliza: deja que la herramienta ponga el TNF.
Preguntas frecuentes
¿Qué TNF debo usar para la dirección de un sitio web?
El tipo bien conocido para URI, que toda herramienta expone simplemente como una opción de URL. URI absoluto es un valor distinto que parece correcto y no se comporta igual en las dos plataformas.
¿Puedo cambiar el TNF de un registro existente?
En el sitio no. Reescribes el registro con el tipo correcto, lo que en una etiqueta sin bloquear es sencillamente otra escritura. En una etiqueta bloqueada no se puede hacer en absoluto.
¿Por qué mi registro de texto se ve bien y no hace nada?
Porque un registro de texto es contenido y no una instrucción. La plataforma lo muestra o lo ignora, y nada en él pide al teléfono que abra nada.
¿El TNF afecta al espacio que ocupa un registro?
Marginalmente, por la longitud del campo de tipo que implica. Los tipos bien conocidos son cortos por diseño, y esa es una razón para preferirlos en etiquetas pequeñas.