Ir al contenido principal

Detectar mobil y redireccionarlo

Hace un tiempo atrás, quizás no mas de unos 5 meses, estaba diseñando una pagina web para un proyecto que me habían solicitado unos compañeros de la universidad (money $$$), me contaron los requerimientos de la pagina y uno de ellos era que tenia que ser compatible con los dispositivos mobiles, como muchos sabemos, paginas como la de twitter, google+ y facebook automaticamente redireccionar a una dirección similar a la siguiente

www.twitter.com  -> m.twitter.com

La cosa se puso buena, porque nunca había hecho una pagina que hiciere algo así y me llevo la que no me trajo, tenia 2 meses para hacerlo, aunque la pagina no era un reto en si, porque es lo de siempre, que las personas se puedan loguear, que el administrador haga cambios en la aplicación, bla bla bla, bueno eso se hace rápido, mas cuando ya tienes algún tiempo trabajando en cosas por el estilo, ya sabes que archivos usaras (pues claro, si ya tenemos la rueda para que re inventarla), entonces comencé a buscar en foros y toda la cuestión que uno hace cuando se necesita ayuda en algo que no entiende o que no sabe hacer y hasta que al fin me tope con un scripts que hace lo que yo quería, redireccionar la pagina a un lugar donde yo tenia el estilo completo de la versión web para mobiles, aunque hay que recalcar que hay muchos dispositivos y en cada uno de ellos hay que hacerle un estilo que se adecue a la pantalla correspondiente.


Comencemos con el script de una vez, ya estubo bueno de tanta casaca

Lo primero que necesitamos es saber que navegador utiliza el cliente que visita nuestra web, eso se comprueba fácil con $_SERVER['HTTP_USER_AGENT']. Para mas informacion has clic aqui.
<?php
        echo $_SERVER['HTTP_USER_AGENT'];
?>
Luego, mejoramos el script para que vea si tiene o no, uno de los navegadores mobiles, para ello usamos el método strpos() (para mas información has clic aqui). A este archivo lo guardamos con el nombre de user_agent.php (opcional claro esta).

<?php
    $iphone = strpos($_SERVER['HTTP_USER_AGENT'],"iPhone");
    $android = strpos($_SERVER['HTTP_USER_AGENT'],"Android");
    $palmpre = strpos($_SERVER['HTTP_USER_AGENT'],"webOS");
    $berry = strpos($_SERVER['HTTP_USER_AGENT'],"BlackBerry");
    $ipod = strpos($_SERVER['HTTP_USER_AGENT'],"iPod");
    if ($iphone || $android || $palmpre || $ipod || $berry == true)
    {
        header('Location: http://mobile.site.com/');
        // si no nos gusta el metodo header(), usamos un script
        //en otras palabras podemos usar cualquiera de las 2 opciones
        echo "<script>window.location='http://mobile.site.com'</script>";
    }
?>

Si tenemos varias versiones, para los distintos dispositivos, como por ejemplo Ipad o tabletas con Android en donde la resolución resulta ser mayor, seria buena idea hacer mas comprobaciones con el if  elseif, y hacer un diseño especial para cada caso.

Y para terminar, simplemente lo incluimos en nuestro index.

<?php
    include('user_agent.php');
    //supongamos que este es index
?>

Un ejemplo mucho mas completo lo podemos encontrar en la siguiente dirección.

https://github.com/nebiros/yasc/blob/master/library/Yasc/Http/UserAgent.php

Gracias a Nebiros, por el script mas completo y a Srinivas Tamada, por el ejemplo mostrado en este blog.

Entradas populares de este blog

Northwind para Mysql y otras

Supongamos que necesitamos una base de datos para comenzar a hacer pruebas y a la vez necesitamos que esa base de datos contenga mucha información con la cual trabajar. En mis tiempos de universidad existía una base de datos que utilizábamos en los laboratorios con SQL Server y c# para mostrar los datos en algún formulario. El nombre era Northwind. El problema es que era solo para SQL Server, pero alguien en se dio a la tarea de exportar esa base de datos a MySql y es justo lo que te vengo a mostrar acá. Hace un tiempo atrás clone de los repositorios de Google Code   esa información (que como algunos de ustedes sabrá dejara de estar al servicio de todos en un tiempo). Modifique un poco la DB de Mysql para que se pudiera ejecutar el script sin ningún problema. Lo interesante de todo esto es que puedes utilizar los demás script para diferentes gestores de base de datos Se advierte que para poder usarlas adecuadamente hay que modificar los campos de tipo longblob y qu...

How to upload File from form data POST in Android with Retrofit 2

 The last day I explain how to upload a simple CSV file using node . And now I teach how to upload from android device. Get source code here:  GitHub This article is write in java... later I'll add the method for kotlin. The logic is not changed, only the format code. 1) Is necessary add the dependencies in gradle: module implementation 'com.google.code.gson:gson:2.8.6' // RETROFIT // implementation 'com.squareup.retrofit2:retrofit:2.6.2' implementation 'com.squareup.retrofit2:converter-gson:2.6.2' implementation 'com.squareup.retrofit2:converter-scalars:2.5.0' 2) Add permissions in AndroidManifest.xml and modified the application for work with network security policy <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> in applitacion add ...

Instalacion de apk desde el adb (Linux y Windows)

Por lo general siempre instalamos nuestras aplicaciones por medio de algún gestor oh tienda de aplicaciones como el Google Play oh F-Droid por mencionar a algunos. Pero que pasa cuando no podemos acceder a esas tiendas y hemos modificado algunas cosas del sistema como por ejemplo la eliminación del teclado, por el simple hecho de que no nos gusta, oh a ver quitado el propio launcher del sistema, aunque suene ilógico hay personas que lo hacen (yo por ejemplo lo he hecho a modo de prueba en un Kiosera que tuve, ya que me pareció demasiado pesado y lelo el launcher y el teclado por defecto y llegue a una optimizacion del SO de un 100%). Quizás eso es lo mejor de Android, el completo control que este te da si eres root, sin mas preámbulo te muestro como instalar las apk por medio del ADB de Android. Pero antes de que los vea me gustaría aclarar que esto es aplicable tanto para dispositivos físicos como emuladores, en el caso de ser dispositivos físicos asegúrate de tener los dr...