¿Hay un script para detectar, si el visitante usa iphone (cualquiera que sea su navegador, puede iPhone Safari, iPhone para Opera o etc.)?Detect iPhone Browser
Luego se apagará parte de mi JavaScript.
Gracias ...
¿Hay un script para detectar, si el visitante usa iphone (cualquiera que sea su navegador, puede iPhone Safari, iPhone para Opera o etc.)?Detect iPhone Browser
Luego se apagará parte de mi JavaScript.
Gracias ...
buscando en la red hay dos formas comunes de lograr esto. Aunque mi favorito es en PHP, es tan limpio Guau. : D
En PHP puede escribir
<?php
function isIphone($user_agent=NULL) {
if(!isset($user_agent)) {
$user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';
}
return (strpos($user_agent, 'iPhone') !== FALSE);
}
if(isIphone()) {
header('Location: http://www.yourwebsite.com/phone');
exit();
}
// ...THE REST OF YOUR CODE HERE
?>
y en javascript puede escribir
var agent = navigator.userAgent;
var isIphone = ((agent.indexOf('iPhone') != -1) || (agent.indexOf('iPod') != -1)) ;
if (isIphone) {
window.location.href = 'http://www.yourwebsite.com/phone';
}
Espero que ayude.
PK
<script language="javascript" type="text/javascript">
//This redirects iPhone users to the iPhone-friendly site
if ((navigator.userAgent.indexOf('iPhone') != -1) ||
(navigator.userAgent.indexOf('iPod') != -1)) {
document.location = "http://i.yoursite.com";
}
Este script comprueba iPhone o iPod en el userAgent y luego ejecuta una acción. Dale una oportunidad.
Aunque me gustan las respuestas aquí, creo que es mejor usar el siguiente ...
http://www.htaccesstools.com/articles/detect-and-redirect-iphone/
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} iPhone
RewriteRule .* http://iphone.example.com/ [R]
O
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} iPhone
RewriteCond %{REQUEST_URI} !^/my-iPhone-site/
RewriteRule .* /my-iPhone-site/ [R]
Este es una alternativa .htaccess, w lo que significa que te deja más espacio para tratar con php :) espero que ayude
La sabiduría convencional es que los dispositivos iOS tienen un agente de usuario para Safari y un agente de usuario para el UIWebView. Esta suposición es incorrecta ya que las aplicaciones iOS pueden personalizar su agente de usuario y lo hacen. El principal infractor aquí es Facebook.
comparar estas cadenas de agente de usuario para dispositivos iOS:
# iOS Safari
iPad: Mozilla/5.0 (iPad; CPU OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B176 Safari/7534.48.3
iPhone: Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3
# UIWebView
iPad: Mozilla/5.0 (iPad; CPU OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/98176
iPhone: Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_1 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Mobile/8B117
# Facebook UIWebView
iPad: Mozilla/5.0 (iPad; U; CPU iPhone OS 5_1_1 like Mac OS X; en_US) AppleWebKit (KHTML, like Gecko) Mobile [FBAN/FBForIPhone;FBAV/4.1.1;FBBV/4110.0;FBDV/iPad2,1;FBMD/iPad;FBSN/iPhone OS;FBSV/5.1.1;FBSS/1; FBCR/;FBID/tablet;FBLC/en_US;FBSF/1.0]
iPhone: Mozilla/5.0 (iPhone; U; CPU iPhone OS 5_1_1 like Mac OS X; ru_RU) AppleWebKit (KHTML, like Gecko) Mobile [FBAN/FBForIPhone;FBAV/4.1;FBBV/4100.0;FBDV/iPhone3,1;FBMD/iPhone;FBSN/iPhone OS;FBSV/5.1.1;FBSS/2; tablet;FBLC/en_US]
Tenga en cuenta que en el IPAD, cadena de agente de usuario del Facebook UIWebView incluye 'iPhone'.
La vieja manera de identificar iPhone en JavaScript:
IS_IPHONE = navigator.userAgent.match(/iPhone/i) != null) || (navigator.userAgent.match(/iPod/i) != null);
Si se va a ir con este enfoque para la detección de iPhone, que acabaría con IS_IPHONE siendo cierto si un usuario proviene de Facebook en una iPad. ¡Eso podría crear un comportamiento extraño!
La forma correcta de identificar iPhone en JavaScript:
IS_IPAD = navigator.userAgent.match(/iPad/i) != null;
IS_IPHONE = (navigator.userAgent.match(/iPhone/i) != null) || (navigator.userAgent.match(/iPod/i) != null);
if (IS_IPAD) {
IS_IPHONE = false;
}
Declaramos IS_IPHONE ser falsa en iPads para cubrir por el agente de usuario extraña Facebook UIWebView IPAD. Este es un ejemplo de cómo el rastreo de agente de usuario no es confiable. Cuantas más aplicaciones de iOS personalicen su agente de usuario, más problemas tendrá la detección de agente de usuario. Si puede evitar el rastreo de agente de usuario (sugerencia: Consultas de medios de CSS), HÁGALO.
Última respuesta indirecta a esta pregunta, pero la encontré útil.
En lugar de redirigir a los usuarios de dispositivos móviles, considere utilizar un diseño de CSS receptivo para ofrecer a los usuarios de computadoras de escritorio y dispositivos móviles el mismo contenido con dos estilos diferentes. Esto ayuda a evitar dividir y duplicar el código. Puede codificar CSS receptivo desde cero o utilizar marcos preempaquetados como Twitter Bootstrap.
No creo que el CSS responsivo sea bueno para el diseño dekstop y el móvil a la vez, porque la información que queremos mostrar en dekstop y en dispositivos móviles será diferente. Por ejemplo, no informamos cuánta información en el dispositivo móvil hace que el diseño parezca complicado. El diseño receptivo creo que está diseñado para hacer que el sitio web se vea bien en diferentes pantallas. – GusDeCooL
El OP no preguntaba porque para redirigir, pero para evitar ejecutar un script. –
//Detect special conditions devices
$iPod = stripos($_SERVER['HTTP_USER_AGENT'],"iPod");
$iPhone = stripos($_SERVER['HTTP_USER_AGENT'],"iPhone");
$iPad = stripos($_SERVER['HTTP_USER_AGENT'],"iPad");
$Android = stripos($_SERVER['HTTP_USER_AGENT'],"Android");
$webOS = stripos($_SERVER['HTTP_USER_AGENT'],"webOS");
//do something with this information
if($iPod || $iPhone){
//browser reported as an iPhone/iPod touch -- do something here
}else if($iPad){
//browser reported as an iPad -- do something here
}else if($Android){
//browser reported as an Android device -- do something here
}else if($webOS){
//browser reported as a webOS device -- do something here
}
Genial ... muchas gracias, den el código en PHP Script. parece que es la mejor solución, ya que quiero hacer una tarea diferente para el navegador diferente que quiero que se procese desde el servidor: D – GusDeCooL
sé exactamente lo que quieres decir. Me encanta php. Cuando un usuario hace clic derecho en la fuente, no puede ver el código utilizado para programar el sitio. Es muy flexible también. y es fácil de usar Todo el código se procesa en el servidor, lo cual es una ventaja. Espero que esto ayude. si necesita más ayuda ... házmelo saber. Se puede hacer ajustes a este código si es necesario hacer alguno. – Pavan
de hecho, puede mejorar este código para verificar si es un ipod. si necesitas ayuda con eso, házmelo saber. Además, mientras estás aquí, marca esta publicación como respondida gracias. para que las personas sepan que esta es la respuesta correcta y que luego pueden usar esto como referencia a medida que lo prueban. gracias – Pavan