Kompatibilitätsprobleme bei der Rotationserkennung
Geräterotation mit JavaScript in erkennen Der Browser kann auf Android-Telefonen eine größere Herausforderung darstellen als auf iPhones, die über einen klar definierten Ansatz verfügen. Das Verhalten auf Android-Geräten kann inkonsistent sein, mit Variationen in der Reihenfolge und Häufigkeit von Ereignissen und Änderungen in Werten wie screen.width und window.orientation.
Zuverlässiger Ansatz zur Rotationserkennung
Um diese Inkonsistenzen zu beheben, wird empfohlen, sowohl die Größenänderungs- als auch die Ausrichtungsänderungsereignisse abzuhören und als Sicherheitsmaßnahme Abfragen zu implementieren. Dieser Ansatz stellt sicher, dass Sie letztendlich einen gültigen Orientierungswert erhalten.
var previousOrientation = window.orientation;
var checkOrientation = function(){
if(window.orientation !== previousOrientation){
previousOrientation = window.orientation;
// Handle orientation change as needed
}
};
window.addEventListener("resize", checkOrientation, false);
window.addEventListener("orientationchange", checkOrientation, false);
// (Optional) Poll for orientation changes on Android (180 degree turns)
setInterval(checkOrientation, 2000);
Ereignissequenzen und Wertänderungen
Die Ereignissequenz und die Werteänderungen variieren je nach Gerät. Hier ist eine Tabelle, die die Ergebnisse verschiedener Geräte zusammenfasst:
Gerät | Ereignisse ausgelöst (im Querformat) | Ausrichtung | innerWidth | screen.width |
---|---|---|---|---|
iPad 2 | Größe ändern, Ausrichtung ändern | 90 | 1024 | 768 |
iPhone 4 | Größe ändern, Ausrichtung ändern | 90 | 480 | 320 |
Droidentelefon | Ausrichtung ändern, Größe ändern | 90 | 320 | 569 |
Samsung Galaxy Tablet | Ausrichtungsänderung, Ausrichtungsänderung, Ausrichtungsänderung, Größe ändern, Ausrichtungsänderung | 90, 90, 90 | 400 | 683 |
Zusätzliche Überlegungen
Dieser Ansatz bietet zwar eine zuverlässige Möglichkeit, die Geräterotation zu erkennen, es ist jedoch wichtig, ihn beizubehalten Beachten Sie in diesem Zusammenhang die Einschränkungen von JavaScript. Beispielsweise ändern sich bestimmte Werte wie „screen.width“ möglicherweise nicht immer wie erwartet. Es wird außerdem empfohlen, sich nicht ausschließlich auf screen.width zu verlassen, da dieses auf allen iOS-Geräten inkonsistent ist.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3