Ich möchte in Javascript erkennen, wenn ein Smart App Banner gerade angezeigt wird. Ich habe das DOM bereits inspiziert, aber es gibt keine Beweise für das Banner.Wie erkennt man in Javascript, wenn eine Smart Banner App gerade angezeigt wird?
Antwort
Dies ist eine alte Frage, aber vielleicht wird dies für jemanden nützlich sein. Ich tat dies auf folgende Weise:
- Detected iOS User-Agent;
- Verwendet
window.matchMedia
, um den Gerätetyp und die Ausrichtung mit Medienabfragen zu bestimmen; - 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.
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).
wenn Sie jquery verwenden:
hasSmartBanner = window.innerHeight !== $(window).innerHeight();
- 1. Smart App Banner nur angezeigt, wenn App bereits installiert
- 2. iOS benutzerdefinierte Smart-App-Banner
- 3. Smart App Banner wird nicht für meine Anwendung angezeigt, wenn die Anwendung nicht installiert ist
- 4. Admob Banner wird nicht angezeigt
- 5. Smart-App Banner nicht mit jQuery Mobile arbeiten
- 6. URL-Leiste ausblenden, ohne Smart App-Banner unter iOS auszublenden
- 7. Smart-App-Banner werden mit mobilen Safari-Adressleiste verstecken
- 8. Apple Smart App Banner auf dem Desktop-Browser testen
- 9. Wird App-Argument auf Apple Smart Banner bei der Installation an die App übergeben?
- 10. Javascript - Wie erkennt man eine Elementbreitenänderung?
- 11. Wie wird JavaScript eingefügt, wenn eine jQuery-Registerkarte angezeigt wird?
- 12. AdMob-Banner-Anzeige wird nicht angezeigt
- 13. Wie erkennt man, wenn browserify ausgeführt wird?
- 14. Wie erkennt man, wenn UITextField leer wird
- 15. Wie erkennt man, wenn MKUserTrackingBarButtonItem verwendet wird
- 16. Wie erkennt man, wenn Tastatur in Xcode UI Test angezeigt wird
- 17. Kann ein Smart App-Banner eine von Xcode installierte App starten?
- 18. Ad Banner nicht angezeigt
- 19. Pushnotification Banner nicht angezeigt - IOS9
- 20. Wie erkennt man, wenn Ihre Website auf SFSafariViewController geladen wird
- 21. Wie erkennt man, wenn ein Audiogerät in CoreAudio getrennt wird?
- 22. Wie erkennt man, wenn ein Formular gezogen wird?
- 23. Javascript. Wie erkennt man, wenn sich das window.document geändert hat?
- 24. Corona SDK: Bottom Banner Ad wird nicht angezeigt
- 25. Wie wird ein Banner immer am unteren Bildschirmrand angezeigt?
- 26. App auf Smart Hub in Samsung Smart TV verlassen Sollten
- 27. Wie erkennt man, wenn innerHTML abgeschlossen ist
- 28. Wie erkennt man eine Firewall in Windows?
- 29. Wie erkennt man, wenn AJAX-geladene Bilder vollständig heruntergeladen werden?
- 30. Wie lade ich den Link, den ich in meinem WebView navigiere, wenn ich auf dem Smart App Banner klicke?
Danke kam ich zu dieser Lösung. –
Wie es zu überprüfen ist, zeigt window.innerHeight & screen.height verschiedene Werte, auch wenn Smart App Banner nicht im DOM angezeigt wird –