iOS 7 Statusleiste mit Phonegap
In iOS 7, Phonegap Anwendungen erscheint unter der Statuszeile. Dies kann es schwierig machen, klicken Sie auf Schaltflächen/Menüs, wurden am oberen Rand des Bildschirms.
Gibt es jemanden, der kennt eine Möglichkeit dieses Problem zu beheben status-bar-Problem auf iOS 7 in einer Phonegap-Anwendung?
Ich habe versucht, den offset die gesamte web-Seite mit CSS, aber es scheint nicht zu funktionieren.
Gibt es eine Möglichkeit, wie ausgeglichen die gesamte UIWebView oder machen nur die status bar sich Verhalten, wie es in iOS6?
Dank
InformationsquelleAutor der Frage Luddig | 2013-10-06
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fand ich eine Antwort auf einen anderen thread, aber ich beantworte dir die Frage, falls jemand anderes fragt.
Ersetzen Sie einfach die
viewWillAppear
imMainViewController.m
:InformationsquelleAutor der Antwort Luddig
Neben Ludwig Kristoffersson resize-fix, ich empfehle die änderung status bar Farbe:
InformationsquelleAutor der Antwort Alex L
bitte installieren Sie das plugin für phonegap: https://build.phonegap.com/plugins/505
Und die richtige Einstellung wie unten gezeigt, zum Steuern der überlagerung der webview:
Für mich, mit Phonegap 3.3.0 funktioniert es.
Mehr Informationen auf der Github-Seite des Projekts:
https://github.com/phonegap-build/StatusBarPlugin
InformationsquelleAutor der Antwort xdemocle
Ausblenden, Statusleiste, fügen Sie den folgenden code in die Datei
MainViewController.m
unter der Funktion-(void)viewDidUnload
InformationsquelleAutor der Antwort markmarijnissen
Antwort https://stackoverflow.com/a/19249775/1502287 für mich gearbeitet, aber ich musste ihn ein bisschen verändern, damit es funktioniert mit der Kamera-plugin (und möglicherweise andere) und der viewport meta-tag mit "height=device-height" (nicht die Einstellung der Höhe Teil würde dazu führen, die Tastatur angezeigt, über die Anzeige, in meinem Fall, versteckt einige Eingänge auf dem Weg).
Jedes mal, öffnen Sie die Kamera-Ansicht, und gehen Sie zurück zu Ihrem app, die viewWillAppear Methode aufgerufen werden würde, und Ihrer Ansicht nach würden schrumpfen von 20px.
Auch, das Gerät-Höhe für den viewport auch die 20 extra-px, - Rendern der content Scrollbar sein soll und 20px höher als die webview.
Hier ist die komplette Lösung für das Kamera problem:
In MainViewController.h:
In MainViewController.m:
Nun für die viewport-problem, in Ihrem deviceready-Ereignis-listener hinzufügen (mit jQuery):
Hier ist der viewport, die ich für andere Versionen:
Und alles funktioniert gut jetzt.
InformationsquelleAutor der Antwort dieppe
Geh mal in den app
(app name)-Info.plist
Datei in XCode und fügen Sie die TastenDieser funktioniert bei mir ohne problem.
InformationsquelleAutor der Antwort dk123
Für Cordova 3.1+, es gibt ein plugin, dass sich mit der änderung im Verhalten der status-bar für iOS 7+.
Dies ist gut dokumentiert hiereinschließlich, wie die status-Leiste können Sie wieder Ihre pre-iOS7 Zustand.
Um das plugin zu installieren, führen Sie:
Dann fügen Sie diese zu config.xml
InformationsquelleAutor der Antwort track0
Ich mein problem lösen durch die Installation der
org.apache.cordova.statusbar
und das hinzufügen in meine topconfig.xml
:Diese Konfigurationen nur für iOS 7+
Referenz:
http://devgirl.org/2014/07/31/phonegap-developers-guid/
InformationsquelleAutor der Antwort mayconbelfort
Finden Sie in der neuen Cordova StatusBar plugin die Adressen, die genaue Problem.
http://docs.icenium.com/troubleshooting/ios7-status-bar#solution option #3
InformationsquelleAutor der Antwort Philippe Monnet
Verwende ich das folgende Stück code, um eine Klasse für den Körper, wenn iOS7 erkannt wird. Ich habe dann Stil, der Klasse und dem hinzufügen einer
20px
Marge an der Spitze von meinem container. Stellen Sie sicher, dass Sie die "Gerät" - plugin installiert ist und dass dieser code ist in das "deviceready" event.Aus der Lektüre auf, ich habe gehört, dass das nächste update auf Phonegap (3.1 glaube ich) eine bessere Unterstützung der änderungen in iOS7 status bar. Also das kann nur erforderlich sein, als eine Kurzfristige Korrektur.
InformationsquelleAutor der Antwort Ryan
Ludwig ' s Antwort für mich gearbeitet.
Für alle, die seine Antwort und möchte nun die Farbe des weißen Rands (mag trivial erscheinen, aber hatte mich ratlos), siehe hierzu:
Wie kann ich das ändern das UIWebView Hintergrundfarbe nach Abrutschen UIWebView zu beheben, die iOS7 status bar overlay-Problem?
InformationsquelleAutor der Antwort Paul
Einen anderen Weg geht abwärtskompatibel. Machen Sie den HTML nach
iOS 7
(mit einer extra-20px margin-top) zu geben, derfull screen
den look und den Schnitt, der extra-Marge-off füriOS < 7.0
. Etwas wie das folgende inMainViewController.m
:Diese Lösung wird nicht verlassen, ein schwarzer Balken auf die Oberseite für
iOS 7.0
und oben, was eine moderne iOS-Nutzer finden ungeraden und alten.InformationsquelleAutor der Antwort tipycalFlow
Schreiben Sie den folgenden code innerhalb AppDelegate.m in didFinishLaunchingWithOptions Ereignis (genau vor seinem letzten Zeile des Codes "return YES;" ) :
Ich werde warten, für Ihr feedback! 🙂
InformationsquelleAutor der Antwort Ehsan
wenn wir die Kamera-plugin für eine Bildergallerie, die Statusleiste wird wieder kommen, so zu beheben, dass Problem bitte fügen Sie diese Zeile
zu
Funktion innerhalb CVDCamera.m in der plugins Liste
InformationsquelleAutor der Antwort Arjun T Raj
Schreiben Sie den folgenden code innerhalb AppDelegate.m in didFinishLaunchingWithOptions Veranstaltung ab.
CGRect screenBounds = [[UIScreen mainScreen] bounds];
//Fixing status bar -------------------------------
NSArray *vComp = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];
if ([[vComp objectAtIndex:0] intValue] >= 7) { //iOS 7 or above
CGRect newWebViewBounds = CGRectMake( 0, 20, screenBounds.size.width, screenBounds.size.height-20 );
screenBounds = newWebViewBounds;
}
//------------------------------- Fixing status bar End
Fix und für die über iOS 7 und höher.
InformationsquelleAutor der Antwort RahulSalvikar
Halten die status bar sichtbar in der Porträt -, sondern verstecken es in der Landschaft (d.h. fullscreen), versuchen Sie Folgendes:
In
MainViewController.h
:In
MainViewController.m
:Dies ist eine Kombination von dem, was ich gefunden habe in dieser und den verlinkten StackOverflow-Diskussion, einige code aus der Cordova StatusBar plugin (damit Sie nicht zu fest die 20px-Wert), und einige Beschwörungen für meinen Teil (ich bin kein iOS dev also ich suchte meinen Weg zu dieser Lösung).
InformationsquelleAutor der Antwort matb33
Zuerst Fügen Sie das Gerät plugin in Ihrem Projekt. Plugin-Id: org.apache.cordova.Gerät und repository ist: https://github.com/apache/cordova-plugin-device.git
Danach verwenden Sie diese Funktion, und rufen Sie es auf jeder Seite oder Bildschirm:-
InformationsquelleAutor der Antwort Anil Singhania
Der beste Weg, um die Kontrolle Status Bar background - 2017
Nach andauernder frustration, viel Suche auf dem Internet, diese sind die Schritte, die Sie ergreifen müssen:
Verwenden Sie den folgenden code auf onDeviceReady
Es funktioniert für mich in iOS & Android.
Glück!
InformationsquelleAutor der Antwort Niv Asraf