2010-11-24 12 views
11

Estoy desarrollando una aplicación web que se lanzará desde un icono de escritorio en un iPad como una aplicación de pantalla completa. El Apple documentation on phone links recomienda el uso de esta etiqueta meta:¿Deshabilitar la detección del número de teléfono en los enlaces web de escritorio del iPad?

<meta name = "format-detection" content = "telephone=no"> 

Sin embargo, esto no parece trabajar. ¿Hay algún otro mecanismo de HTML/CSS/JavaScript para controlar este comportamiento?

La inyección aleatoria de etiquetas de anclaje me está causando una gran cantidad de errores de CSS.

Solución

Un truco que he encontrado para el trabajo es inyectar caracteres de espacio especiales, pero la idea de la transformación de todos mis datos en la salida no me llena de alegría. Tales personajes traen sus propios problemas a la mesa. Hacer esto se complicará aún más con las transformaciones de AJAX y JavaScript.

La reproducción de

Pasos para reproducir:

  1. Abra la página en el iPad Safari
  2. Uso del Añadir a pantalla de inicio marcador función
  3. iniciar la pantalla icono Inicio

página de la muestra:

<!DOCTYPE html> 
<html> 
<head> 
<meta name="apple-mobile-web-app-capable" content="yes"> 
<meta name = "format-detection" content = "telephone=no"> 
<title>Telephone detect</title> 
</head> 
<body> 
expected: 
<a href="tel:1555555">1555555</a> 
<br /> 
bad: 1555555 
<br /> 
bad: &#x31;&#x35;&#x35;&#x35;&#x35;&#x35;&#x35; 
<br /> 
inconvenient: 1&#xFEFF;555555 
</body> 
</html> 

Notas

This question parece estar relacionado, pero carece de detalles y no estoy seguro de si el comportamiento es idéntico en el iPhone. Esta es una aplicación web y no tiene un componente nativo. iPad versión 3.2.2.

+0

Nota: Han pasado varios años desde que publiqué esta pregunta y no estoy en posición de comentar si el problema está presente en versiones de software más recientes ni puedo verificar ninguna solución propuesta. – McDowell

Respuesta

1

ok, lo arreglé ... agregué un <a href link> y lo puse estilo sin texto-decoración ... Estaba usando el control asp: hyperlink en asp.net y funcionaba en 3.2, entonces no estoy seguro de por qué paró en 4.2, pero usando un estándar, un enlace funciona.

+1

Aprecio el esfuerzo y esta solución puede ser adecuada para algunos, pero introduce otros problemas que deben superarse (como convertir cosas en pestañas, problemas de accesibilidad, esto todavía tiene que funcionar en otros navegadores). – McDowell

7

La metaetiqueta funciona para mí en asp.net. Supongo que no funcionó para el OP porque el HTML no está bien formado. No IE, los navegadores Mozilla tienen problemas con XML/Html con formato incorrecto. Cambian

<meta name = "format-detection" content = "telephone=no">

a

<meta name = "format-detection" content = "telephone=no" />

+2

El marcado es HTML 5, donde '/' no tiene efecto en [elementos vacíos] (http://dev.w3.org/html5/spec/Overview.html#void-elements) como 'meta'. Ya no trabajo en esta área y no tengo un iPad para probar, por lo que no puedo verificar el comportamiento en contra de [espec] (http://dev.w3.org/html5/spec/Overview.html#start- etiquetas). – McDowell

3

Ponga esto después de carga del enlace tel

if (navigator.userAgent.match(/(iPhone|Android|BlackBerry)/)) { 
//this is the phone 

} else if (navigator.userAgent.match(/(iPod|iPad)/)) { 
    $('a[href^=tel]').click(function(e){ 
     e.preventDefault(); 
    }); 
} else { 
//this is the browser 

    $('a[href^=tel]').click(function(e){ 
     e.preventDefault(); 
    }); 
} 
+1

¿Por qué es necesario el segundo bloque si? ¿No hace lo mismo que el bloque else? – webXL

2

La etiqueta meta funcionará:

<meta name="format-detection" content="telephone=no" /> 

Es el navegador Safari que no muestra su página actualizada correctamente.Haga que otro texto cambie a la página y actualice y los cambios aparecerán. El solo hecho de agregar la metaetiqueta mostrará la página con el número interpretado como un número de teléfono si ya lo ha visto de esa manera.

+1

FYI: sangra el código de 4 espacios para formatear. – McDowell

+0

TY, nuevo en esto. –

Cuestiones relacionadas