web-dev-qa-db-ger.com

Wie entferne ich die iOS-Statusleiste mit Phonegap Build?

Ist es möglich, die Statusleiste in iOS7 zu entfernen, wenn Sie Phonegap Build 3.1 verwenden? Ich kann die Statusleiste entfernen, wenn Sie lokal in Xcode erstellen, aber sobald ich Phonegap Build probiere, ist es wieder verfügbar. 

  1. Gibt es eine Konfigurationsvoreinstellung, um die Statusleiste vollständig zu entfernen? 
  2. Wenn nicht, kann die Statusleiste oben in der App-Ansicht eingeblendet und auf einen transparenten Hintergrund gesetzt werden? 

Ich möchte nicht möchte, dass die Statusleiste die App-Ansicht 20px nach unten drückt, was jetzt der Fall ist.

24

Ab Phonegap 3 können Sie jetzt anpassen plist -Dateien über config.xml.

Code:

<gap:config-file platform="ios" parent="UIViewControllerBasedStatusBarAppearance" overwrite="true">
    <false/>
</gap:config-file>
16
Minifyre

Normalerweise würden Sie die info.plist bearbeiten und diesen Schlüssel hinzufügen:

 <key>UIViewControllerBasedStatusBarAppearance</key><false/>

Da Sie dies beim Build jedoch nicht tun können, müssen Sie ein Plugin hinzufügen:

https://github.com/phonegap-build/StatusBarPlugin/blob/master/README.md

Und dann:

StatusBar.hide (); 

14
MPaulo

Fügen Sie diese Funktion in die Datei MainViewController.m ein:

//fix not hide status on ios7
- (BOOL)prefersStatusBarHidden
{
    return YES;
}
14
myaug

klicken Sie auf die Datei "Projektname-Info.plist" unter dem XCode-Stammprojektordner. Daraufhin wird eine Benutzeroberfläche angezeigt, auf der Sie die Einträge der Schlüssel vs. Werte sehen können. Sie können Schlüssel hinzufügen/löschen oder einfach einen neuen Schlüssel hinzufügen Suche nach "Statusleiste ist anfangs ausgeblendet" und setze "YES" als Wert.

6
mrMaF

Ich verwende Folgendes in config.xml, wodurch die Statusleiste vollständig entfernt wird, die unter iOS 7.0.3 und 7.0.4, Phonegap Version 3.0.0 getestet wurde, falls dies hilfreich ist.

    <preference name="fullscreen" value="true" />
4
pppontusw

Mit Cordova musste ich eigentlich zwei Sachen machen. 

  1. Wenn ich mit XCode baue, habe ich in Target-> Statusbar style -> HIDDEN Festgelegt. Dies würde die Statusleiste beim Start auf Ihrem Begrüßungsbildschirm ausblenden.

  2. Sie müssen es auch auf dem Gerät bereit mit Plugin verstecken. Andernfalls wird es wieder angezeigt. Installieren Sie dazu das Plugin:

cordova plugin add org.Apache.cordova.statusbar

und nennen Sie dies auf deviceready: 

StatusBar.hide();
3
Dima

Installieren Sie einfach das Statusleisten-Plugin (ich verwende Cordova 5.x):

cordova plugin add [email protected]

Das in Ihrem Code referenziert nur seine globale Variable und verwendet .hide ():

StatusBar.hide()
3
occasl

Das hat für mich funktioniert:

<preference name="fullscreen" value="true" />

Ich arbeite an Android.

Ich habe dies für Entfernen der Statusleiste insgesamt in Ihrer vorherigen Frage beantwortet

Der wesentliche Teil:

Ich habe das in Cordova 3.6 + iOS 7.1 wunderbar funktionieren lassen. In Anbetracht der Tatsache, dass iOS 7 und 8 jeweils einen Marktanteil von 50% haben, sollte diese Lösung ausreichen.

Plugin Ich verwende: org.Apache.cordova.statusbar

Anstelle von StatusBar.hide() habe ich verwendet:

var hideSb = function(){
//        StatusBar.hide;
        cordova.exec(null, null, 'StatusBar', 'hide', ['Ehi', 'You']);
    };
0
allwynmasc