Récupérer le mode paysage / portrait avec PHP
-
28-10-2019 - |
Question
Y at-il un moyen de récupérer le mode d'un smartphone? Si elle est en mode paysage ou portrait? Et tout cela accessible en PHP?
Il semble session ne peut être consulté dans les JS. Mais vous pouvez le faire avec les cookies. Voici un extrait (non testé)
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
}
La solution
Le plus vous pouvez faire est de détecter en Javascript, puis nous renverrons de données sur le serveur. Consultez window.orientation
et l'événement orientationchange
.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow