MMS con marcado HTML

Fecha de publicación: 2020-01-01
Última actualización: 2020-01-01
Autor: Victor Celer

 

En este artículo se explica cómo generar un mensaje multimedia (MMS) con formato de hypertexto (HTML), por ejemplo:

MMS con HTML

El fichero de MMS utilizado en el anterior ejemplo se puede descargar aquí. Nótese que por lo general los teléfonos no permiten abrir diréctamente un fichero MMS. Es necesario enviar el fichero por medio del centro de mensajería multimedia del operador (MMSC) para que la aplicación de mensajería en el teléfono lo reconozca como MMS y lo despliegue en pantalla.

 

Especificaciones técnicas

Las especificaciones de MMS se encuentran disponibles de manera gratuita en el sitio de Open Mobile Alliance (OMA). Según dichas especificaciones, el diseño visual del mensaje MMS se define usando formateo SMIL. No nos referimos a la última versión de SMIL V3 a propósito, ya que dicha versión no es compatible con MMS. Sólamente un subconjunto de funcionalidades básicas, definidas en la especificación original, es soportado por la mayoría de los clientes de MMS. Según Ericsson, se suponía que el formateo de SMIL en MMS evolucionaría con el tiempo hasta alcanzar la capacidad de HTML.

Es importante destacar que ninguno de los estándares menciona que un cliente MMS debe soportar HTML. Es más, si un cliente MMS soporta HTML, no se puede asumir que soporta todas las características de HTML, como scripts dinámicos, hojas de estilos, formularios interactivos, etc. De hecho, la mayoría de los clientes MMS soportan un conjunto muy limitado de elementos HTML.

 

Elementos HTML soportados

A continuación la lista de elementos HTML soportados por la mayoría de clientes MMS, incluyendo la app de mensajes de Android:

  • <a> (soporta atributo "href")
  • <b>
  • <big>
  • <blockquote>
  • <br>
  • <cite>
  • <dfn>
  • <div>
  • <em>
  • <font> (soporta atributos "color" y "face")
  • <i>
  • <img>
  • <p>
  • <small>
  • <strong>
  • <sub>
  • <sup>
  • <tt>
  • <u>

Cualquier otro elemento puede ser ignorado. Por lo tanto, no es posible incluir JavaScript, CSS, formularios ni otras funcionalidades HTML avanzadas.

Asegúrese de que el atributo "href" contenga un prefijo de esquema válido ("http://" o "mailto:"). Si se omite el prefijo de esquema el cliente MMS puede terminar con error. Este defecto fue observado en la app de mensajes en Android.

Aunque el elemento <img> es soportado, no es posible desplegar una imagen. Cierto elemento gráfico podría aparecer en pantalla en lugar de la imagen, lo cual comprueba que el elemento es reconocido. Sin embargo, no es posible desplegar una imagen real desde un fichero. En cambio, si es posible incluir diversos pictogramas gracias al formato Unicódigo. En el ejemplo de MMS utilizamos el símbolo Unicódigo U+2708, el cual representa un ícono de avión ✈.

El formato HTML es soportado generalmente en iOS y algunos dispositivos Android:

Android Android Sólamente en la versión AOSP de la app de mensajes, a partir de Android 5. En cambio, la versión actual de Google Messages compatible con RCS no soporta MMS con HTML. Entonces, se puede asumir que Google está descontinuando el soporte de HTML en MMS.
 

Nota: La versión AOSP se incluye preinstalada en la mayoría de los teléfonos Android de gama baja y media. En cambio, los de gama alta suelen incluir una versión propietaria de OEM en lugar de AOSP. Por ejemplo, Huawei incluye su propia app.

iOS iOS A partir de iOS 3

 

Ejemplo

El siguiente código HTML simula una notificación de tiquete de abordaje. Este código se puede guardar en un fichero con nombre h.htm:

<big><font color="#da291c">MiAerolinea</font> XY00</big><br>
<tt><b>BOG</b><font color="#da291c">•✈</font><font color="#c0c0c0">‧‧‧‧‧‧‧‧•</font><b>MEX</b></tt>
<br><br>
<a href="http://www.miaerolinea.com/check-in">Check-In</a>

Así se despliega el mismo código HTML en un navegador web:

MiAerolinea XY00
BOG• ✈ ‧ ‧ ‧ ‧ ‧ ‧ ‧ ‧ •MEX

Check-In

 

Así podemos incluir el fichero h.htm dentro del código SMIL:

<smil>
   <head>
      <layout>
         <root-layout/>
         <region id="Text" width="100%" height="100%"/>
      </layout>
   </head>
   <body>
      <par dur="60s">
         <text src="h.htm" region="Text"/>
      </par>
   </body>
</smil>

Nótese que el fichero HTML no sustituye el formato SMIL, sino que se incluye como contenido embebido dentro de SMIL.