2016-05-26 6 views
0

Ich baue eine Seite, die dem Benutzer so viele Informationen über ihr Gerät wie möglich zeigt. Bei mobilen Geräten entspricht die physikalische Auflösung nicht der vom Browser interpretierten Auflösung, da ansonsten hochauflösende Geräte die Seiten nicht sehr gut darstellen würden.Die genaue physikalische mobile Auflösung in Javascript

Zum Beispiel hat mein Moto X Style eine Auflösung von 1440 x 2560 Pixel, die sogar höher als die meisten PC-Monitore ist. Es wird um das Pixelverhältnis des Geräts verkleinert, das auf meinem Gerät auf 3,5 eingestellt ist. dies macht die 'interpretierte Auflösung' 412 x 732 Pixel

Für viele Geräte würde es ausreichen, die interpretierte Auflösung von screen.[width/height] zu multiplizieren und mit window.devicePixelRatio zu multiplizieren. Aber in meinem Fall ist dies nur eine Schätzung und kommt bei 1442 x 2562, vermutlich wegen der Rundung heraus.

Gibt es einen todsicheren Weg, um diesen genauen Wert zu erhalten? Oder vielleicht die Rundung in diesen Werten unterdrücken? Irgendwelche Gedanken werden geschätzt.

Antwort

1

können Sie versuchen, diese Seite genaue Höhe Breite der aktuellen Geräte

var w = window.innerWidth; 
var h = window.innerHeight; 
+0

Diese Werte entsprechen nicht der Bildschirmgröße, sondern der Fenstergröße. Und wenn du meine Frage gelesen hättest, hättest du gesehen, dass ich die Bildschirmmaße schon gefunden habe. –

0

Ich verwende diese, um die Breite/Höhe des Fensters des Browsers zu erhalten.

getWindowWidth: function() { 
    if (true) { 
     try { 
      return document.documentElement.clientWidth; 
     } 
     catch (error) {} 
    } 
    else { 
     try { 
      return window.innerWidth; 
     } 
     catch (error) {} 
    } 
    return 0; 
}, 

getWindowHeight: function() { 
    if (true) { 
     try { 
      return document.documentElement.clientHeight; 
     } 
     catch (error) {} 
    } 
    else { 
     try { 
      return window.innerHeight; 
     } 
     catch (error) {} 
    } 
    return 0; 
}, 
+0

Auch das hilft mir nicht wirklich. In diesem Fall ist es wichtig, screen.width/height zu verwenden, da dies der eigentliche Bildschirm und nicht die Fenster-/Dokumentdimensionen sind. –

+0

Sie können diese 'user_agent: navigator.userAgent.toLowerCase()' und 'user_platform: \t navigator.platform.toLowerCase()' und vergleichen Sie sie mit einer Liste von bekannten Geräten. Wenn Sie PHP oder andere verwenden, könnten Sie den '$ SERVER [" HTTP_USER_AGENT "]' und vergleichen Sie das mit einer Liste. – PHPDev

+0

Hier ist ein Link http://www.useragentstring.com/pages/Mobile%20Browserlist/ zu einer langen Liste von User Agents. – PHPDev