2013-12-11 3 views

Antwort

4

Dies ist eine alte Frage, aber vielleicht wird dies für jemanden nützlich sein. Ich tat dies auf folgende Weise:

  1. Detected iOS User-Agent;
  2. Verwendet window.matchMedia, um den Gerätetyp und die Ausrichtung mit Medienabfragen zu bestimmen;
  3. Karo window.innerHeight

Nach meinen Versuchen habe ich folgende experimentelle window.innerHeight Werte für verschiedene Geräte mit Banner gezeigt. Sie können sie unter finden:

  • iPhone 6 Plus Hochformat: 544px;
  • iPhone 6 Plus Landschaft: 286px;
  • iPhone 6 Porträt: 475px;
  • iPhone 6 Landschaft: 247px;
  • iPhone 5 & 5S Porträt: 376px;
  • iPhone 5 & 5S Landschaft: 148px;
  • iPhone 2G, 3G, 4, 4S, iPod Touch Generation 1-4 Portrait: 288px;
  • iPhone 2G, 3G, 4, 4S, iPod Touch Generationen 1-4 Querformat: 148px.

Hoffe, das wird jemandem helfen.

2

Während das Smart App Banner nicht im DOM angezeigt wird, verringert es die verfügbare Höhe des Browserfensters um 84 Pixel (das ist die Nummer, die ich mit IOS7 + iPhone5 erhalten habe).

Ich werde diese Verringerung in window.innerHeight verwenden, um festzustellen, ob der SmartBanner angezeigt wird.

(ich brauche, um zu bestimmen, ob der Benutzer hat iPhone4 oder iPhone5)

Mobile Safari hat andere Bits haben, die die window.innerHeight beeinflussen, sondern höchstens das untere Menü (Aktie, etc.) und die größere Die Adressleiste oben verringert die verfügbare Höhe um 69 Pixel (das habe ich wiederum über den Safari Web Inspector erhalten).

+0

Danke kam ich zu dieser Lösung. –

+0

Wie es zu überprüfen ist, zeigt window.innerHeight & screen.height verschiedene Werte, auch wenn Smart App Banner nicht im DOM angezeigt wird –

2

wenn Sie jquery verwenden:

hasSmartBanner = window.innerHeight !== $(window).innerHeight(); 
Verwandte Themen