Foto: Esparta Palma - CC BY 2.0
Si creamos una página web que sabemos que va a ser utilizada desde dispositivos móviles, o si se trata de una aplicación que luego desplegaremos usando algún entorno de empaquetado de aplicaciones como Apache Cordova/PhoneGap, puede resultar muy útil permitir que los usuarios marquen un número de teléfono o envíen un SMS solamente pulsando un botón o un enlace.
El acceso al teléfono, entendiendo por ello la posibilidad de realizar llamadas, es muy limitado en aplicaciones HTML5. De hecho, no hay manera de acceder a los contactos en una aplicación web pura. Aunque el W3C estuvo trabajando en una especificación al respecto se abandonó hace años y no está soportada por ningún navegador. Mediante tecnologías como Apache Cordova o PhoneGap sí es posible, pero no en HTML puro que es lo que estamos tratando aquí.
En este caso lo único que puede hacerse es generar un enlace (etiqueta <a />
) y que al pulsarlo realice una llamada a un número de teléfono determinado.
El esquema tel:
Para que se realice una llamada al pulsar un enlace basta con que dicho enlace apunte a un URI que use el esquema tel
. Dicho esquema es muy simple:
<a href="tel:+34123456789">Llamar a la central</a>
Es recomendable usar siempre el formato internacional para el número de teléfono a marcar (es decir empezar el número con el signo + y el código del país). No sabemos dónde pueden estar nuestros visitantes en cada momento y el formato internacional funciona siempre (incluso si el usuario está dentro del propio país al que se llama).
Lo que ocurre cuando el usuario pulse el enlace ya depende de cada sistema operativo móvil. Así en iOS y Android p. ej., aparece una alerta que muestra el número y permite decidir al usuario si quiere realizar la llamada o no. Otros sistemas operativos muestran una lista con varias opciones. Por ejemplo el iPad, que no admite llamadas de voz, permite añadir el número a la agenda de contactos.
Otras aplicaciones pueden registrar esquemas propios de URI para ser abiertas desde páginas web. Por ejemplo, la aplicación Facetime en iOS registra el esquema facetime
, lo que permite abrir dicha aplicación con enlaces cuya href
sea algo parecido a facetime:+34123456789
. El esquema que registra cada aplicación y su formato es totalmente dependiente de la aplicación.
El esquema sms
Dicho esquema permite mostrar la pantalla de mensajería para permitir mandar un SMS:
<a href="sms:+34123456789?body=Hola!">¡Pulsa para decirnos hola!</a>
Este enlace mostraría la página de enviar un sms con el texto Hola!
pre-escrito en el mismo.
Algunos dispositivos no soportan el parámetro ?body
. Por ejemplo en iOS no puedes usarlo y debes utilizar tan solo sms:<numero>
sin posibilidad de incorporar un texto por defecto en el mensaje. Como todos los esquemas su soporte depende de cada sistema operativo.