Recuperar el modo de paisaje/retrato con PHP
-
28-10-2019 - |
Pregunta
¿Hay alguna manera de recuperar el modo de un teléfono inteligente? ¿Si está en modo paisaje o retrato? ¿Y todo ese accesible dentro de PHP?
Parece que no se puede acceder a la sesión dentro de JS. Pero puedes hacer eso con galletas. Aquí hay un fragmento (no probado)
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/; domain=.example.com";
}
function eraseCookie(name) {
createCookie(name,"",-1);
}
window.onorientationchange = function() {
/*window.orientation returns a value that indicates whether iPhone is in portrait mode, landscape mode with the screen turned to the
left, or landscape mode with the screen turned to the right. */
var orientation = window.orientation;
switch(orientation) {
case 0:
// If in portrait mode
document.getElementById("google_map").style.width="300px";
document.getElementById("google_map").style.height="200px";
eraseCookie("orientation");
createCookie('orientation','portrait','0');
break;
case 90:
// If in landscape mode with the screen turned to the left
document.getElementById("google_map").style.width="450px";
document.getElementById("google_map").style.height="325px";
eraseCookie("orientation");
createCookie('orientation','landscape','0');
break;
case -90:
// If in landscape mode with the screen turned to the right
document.getElementById("google_map").style.width="450px";
document.getElementById("google_map").style.height="325px";
eraseCookie("orientation");
createCookie('orientation','landscape','0');
break;
case 180:
// If in portrait mode with the screen flipped
document.getElementById("google_map").style.width="300px";
document.getElementById("google_map").style.height="200px";
eraseCookie("orientation");
createCookie('orientation','portrait','0');
break;
}
}
En PHP:
$orientation = $_COOKIE["orientation"];
if($orientation=="portrait"){
// do something
}else if($orientation=="landscape"){
// do something different
}else{
// fallback
}
Solución
Lo máximo que puede hacer es detectar en JavaScript y luego enviar esos datos al servidor. Verificar window.orientation
y el orientationchange
evento.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow