Recupera la modalità paesaggio/ritratto con PHP
-
28-10-2019 - |
Domanda
C'è un modo per recuperare la modalità di uno smartphone? Se è in modalità paesaggio o ritratto? E tutto quello accessibile all'interno di PHP?
Sembra che la sessione non sia accessibile all'interno di JS. Ma puoi farlo con i biscotti. Ecco uno snippet (non testato)
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;
}
}
In PHP:
$orientation = $_COOKIE["orientation"];
if($orientation=="portrait"){
// do something
}else if($orientation=="landscape"){
// do something different
}else{
// fallback
}
Soluzione
Il massimo che potresti fare è rilevare in JavaScript e quindi inviare tali dati al server. Guardare window.orientation
e il orientationchange
evento.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow