2012-10-01 30 views
8

Mi sitio web revertirá a los visitantes a un sitio móvil independiente, esto parece bastante simple después de leer algunas guías en línea.Permitir que las personas vuelvan al sitio de escritorio desde el sitio para dispositivos móviles

Sin embargo, me gustaría que las personas puedan hacer clic en un enlace en el sitio móvil que luego los llevará al sitio de escritorio.

El problema que veo es que si vuelvo a vincular al sitio de escritorio, simplemente los redireccionará si están en el móvil.

¿Cómo puedo evitar esto?

+3

puede que nos muestre cómo se está redirigiendo actualmente desde el escritorio al sitio móvil. – Nelson

+0

¿Por qué incluso necesita construir sitios separados para dispositivos móviles y de escritorio? Probablemente deberías echar un vistazo a las consultas de medios: https://www.google.pl/search?q=media+queries –

+0

@RuFFCut - Problema ya resuelto. Siga mi diagrama de flujo (vea mi respuesta a continuación) en su lenguaje de programación del lado del servidor, y logre la iluminación de redirección móvil. –

Respuesta

7

Realmente desea hacer este tipo de cosas desde el lado del servidor, no desde el lado del cliente. El problema es que estás obligando a un usuario móvil (en una conexión potencialmente mala) a descargar todo tu sitio de escritorio primero (que podría ser más de 1MB), solo para que la redirección de javascript tenga efecto.

En ese momento, su visitante móvil puede haber perdido la paciencia y ya se fue.

He escrito sobre el proceso aquí: http://www.9xb.com/blog-2012-08-6-common-pitfalls-when-deploying-a-mobile-site-and-how-they-can-be-avoided/ - si saltas al final del artículo, verás un diagrama de flujo que mapea todo el proceso. Este método particular usa cookies, pero podría adaptarse. La belleza de este diagrama de flujo es que es independiente del lenguaje; puede desarrollarlo en cualquier sabor de programación del lado del servidor.

Para su comodidad, he incluido el diagrama de flujo siguiente (aunque recomiendo encarecidamente que da al artículo una lectura):

http://www.9xb.com/wordpress/wp-content/uploads/2012/08/mobile-deployment-small.png

La alternativa a todo ese trabajo, sería desarrollar un sitio responsivo para dispositivos móviles. Sin conocer sus circunstancias, lo dejo en eso; no siempre es apropiado en todos los escenarios.

+0

Votaron esta pregunta a todos. Seriamente. Esta es la respuesta correcta al problema – naugtur

+0

Muchas gracias; ¡Lo leeré y con suerte lo implementaré! – RuFFCuT

+0

La URL y la imagen ya no están disponibles ... (todo lo que pasó en 2012 se ha ido). – Malachi

4

Realice la redirección a la opción móvil (es decir, un enlace en la parte superior de la página del escritorio) o coloque la redirección del dispositivo móvil solo en el punto de entrada inicial, es decir, mydomain.com. Si van al mydomain.com/index.html, entonces no lo vuelvan a dirigir. De esta forma, su enlace 'volver al escritorio' puede ser simplemente un enlace normal al index.html, desde index_mobile.html o desde donde los envíe para su experiencia móvil.

Personalmente, preferiría que el diseño fuera lo suficientemente fluido como para caber en cualquier navegador, entonces no hay problema para empezar. Recuerde, ahora hay tabletas de varios tamaños para enturbiar las aguas de navegación móvil.

0

estático

/site/index.html 
/site/mobile/index.html 

A continuación, se puede utilizar una variedad de cosas.

  1. Galletas
  2. Sesión Unidos
  3. usuario inicia sesión y configuración de preferencias (incluso base de datos guardada)

Si estás usando un sitio estático - se hace más difícil a medida que se complica con JavaScript redirige y dos muchas páginas duplicadas. Publique su código y cuéntenos cómo está haciendo su configuración actualmente y actualizaré mi solución.

4

Lamentablemente no puede verificar la referencia después del cambio de window.location. Pero puede agregar un hashtag y luego verificarlo.

if(window.location.hash == "#stayHereDude"){ 
    // do nothing, or whatever 
} else { 
    window.location = "mobile/index.html"; 
} 

Entonces, you'ld hacer un enlace a /index.html#stayHereDude en la página móvil.

1

En su página de inicio que hace que la redirección móvil, desee comprobar algo en el href que los marca como procedentes del sitio móvil. En mi caso, he utilizado un enlace a la página de inicio desde el sitio móvil con un? M = 0 al final. Por ejemplo: http://www.yoursite.com/?m=0

Luego, compruebe antes de la redirección en la página de inicio que m = 0 en el href. si está allí, no redirija, si no lo está, redirija a un dispositivo móvil.

if (window.location.href.match("m=0")) { 
} else { 
    window.location = "http://www.yoursite.com/mobilesite"; 
} 

Esto funciona si solo está redirigiendo desde una sola página a su sitio móvil.

1

Puede utilizar cookies, sesiones o almacenamiento local de modo que cuando un usuario haga clic en "ir al sitio de escritorio", establezca un valor.

Digamos que establece el nombre para ser "mobileOff" y el valor establecido en "1" o "verdadero" cuando un usuario en un teléfono móvil hace clic en "Ir al sitio de escritorio". Luego, donde sea que esté haciendo su verificación móvil, agregue un condicional para buscar el mobileOff en la cookie/session/localStorage del usuario, si está configurado en verdadero, omita el redireccionamiento automático de móvil, de lo contrario, cargue el sitio principal del escritorio.

1

debe combinar el método de agente de usuario para detectar el dispositivo apalancado con cadena de consulta para este tipo de funcionalidad. Así que vamos a asumir su enlace es

site/default.aspx 

si alguien golpea esta página Ver el agente de usuario y dar en la respuesta del sitio o evento apropiado mejor si el dispositivo detecta si un dispositivo móvil simplemente redirigir a m.yourdomain.com/site/default.aspx
pero si alguien accede a la página site/default.aspx? type = desktop, entonces anula el comportamiento de verificar el agente de uso y representar el sitio del escritorio.

nunca antes debe cargar el sitio de escritorio y luego javascript redirigir a un sitio móvil. haz esto usando el lado del servidor de los agentes de usuario.

Cuestiones relacionadas