telefono telefonico por para paginas numero llamar link hipervinculo hacer enlaces enlace desde como clicka javascript jquery mobile detection browser-detection

javascript - telefonico - Use jQuery para detectar si un dispositivo puede hacer llamadas telefónicas(admite el protocolo "tel://")



link para llamar por telefono html (4)

En mi sitio web, tengo varios enlaces como ese:

<a href="tel://+12181112222" class="call">218.111.2222</a>

Quiero usar jQuery (u otro método) para determinar si el dispositivo admite hacer llamadas / usar el protocolo tel: //. ¿Existe tal método en el mundo?

Quiero utilizar algún método para habilitar o deshabilitar los enlaces, porque cuando se hace clic en el escritorio, llegamos a una página como "Firefox no sabe cómo abrir esta dirección, porque el protocolo (tel) no está asociado con ningún programa. "

Actualmente, estoy oliendo el agente de usuario y detectando si es un dispositivo móvil. Pero, ¿hay una forma mejor / precisa? Algo como $.support.xx jQuery?

if ( (/iPhone|iPod|iPad|Android|BlackBerry/).test(navigator.userAgent) != true ){ $(".call").attr("href", "#"); }


Estoy usando lo siguiente para detectar PROBABLEMENTE un teléfono antes de mejorar un elemento que no sea de enlace en un enlace de tel:

var probablyPhone = ( (/iphone|android|ie|blackberry|fennec/).test (navigator.userAgent.toLowerCase()) && ''ontouchstart'' in document.documentElement );

Excluyo ipod | ipad porque sé que no son teléfonos

El punto clave aquí es PROBABLEMENTE Por supuesto que devolverá cierto y algunos dispositivos de tableta, pero esto es suficiente para mis propósitos en un dispositivo táctil no telefónico, el enlace simplemente fallaría de todos modos. Principalmente solo quiero excluir el escritorio y detectar el evento táctil. Supongo que también revisar el ancho del dispositivo también lo limitaría, pero en última instancia no hay una forma garantizada de detectar un dispositivo móvil capaz de realizar llamadas telefónicas.


No estoy seguro acerca de Android o BlackBerry, pero iOS recogerá automáticamente los números de teléfono y los <a href="tel:xxx">xxx</a> manera: <a href="tel:xxx">xxx</a> ... para que pueda tener un <div> oculto <div> algún lugar que contenga un número de teléfono como 1-800-555-5555, luego, en la carga de la página, haga algo como esto:

var isTelephone = $("a[href*=''tel:'']").length > 0;

Esto puede o no ser portátil para otras plataformas, tendrás que probarlo.


Una solución limitada puede ser una forma de detectar algunos teléfonos puros. Pero no todos son posibles

(function(a) { window.isPhone = //bi?Phone/b|(?=.*/bAndroid/b)(?=.*/bMobile/b)|(?=.*/bAndroid/b)(?=.*/bSD4930UR/b)/i.test(a); })(navigator.userAgent || navigator.vendor || window.opera); console.info(''This device %s make phone calls'', window.isPhone ? ''is originally intended to'' : ''probably can/'t'' );


Uno podría encontrar la primera instancia de un href con tel: // en él y publicar una llamada ajax. Si fue exitoso, debe tener un ReadyState de 1, así que no hagas nada. En caso de error, encuentre todos los hrefs con tel: // y tome html interno y reemplace la etiqueta a.

Esto es más una hipótesis y no probado.

Otro pensamiento es que la mayoría de los navegadores tienen soporte personalizado para cadenas con formato de número de teléfono. Si coloca un número de teléfono, no debería tener que crear la etiqueta a como debería hacerse automáticamente.