Phonegap 3 weißer Blitz nach dem Splash

8

Ich weiß, das wurde mehrmals gefragt (und beantwortet) ( Phonegap mit weißem Bildschirm nach dem Begrüßungsbildschirm - IOS , Phonegap 2.0 - beim Start der App blinkt vor dem Laden meiner App ein weißer Bildschirm , wie man den weißen flackernden Splashscreen bei der Start von phonegap iOS App? ), aber keine dieser Lösungen scheint für mich zu arbeiten. Vielleicht, weil ich Phonegap Version 3 verwende?

Ich lade nur Phonegap und jQuery 2.0.0 (andere Lösungen befassen sich mit jQuery-mobile, die ich nicht verwende) und ich ziele nur auf iOS für die Bereitstellung. Ich habe ein Splash-Bild geladen, dann zeigt die App einen weißen Bildschirm an (Dauer variiert - ich vermute, dass es die App vielleicht lädt?), Dann lädt meine index.html meinen ersten Bildschirm. Hier ist mein aktueller Kopf:

%Vor%

Ich habe versucht, das zu meiner config.xml hinzuzufügen (auf der gleichen Ordnerebene wie index.html):

%Vor%

aber ich bekomme immer noch den weißen Bildschirmblitz. Ich habe auch versucht, den Splash manuell mit / verstecken:

%Vor%

aber das schien überhaupt keine Wirkung zu haben. Hat jemand Vorschläge?

    
Brian Flanagan 02.08.2013, 00:15
quelle

5 Antworten

18

Ich war endlich in der Lage, den Splash Flash zu eliminieren, aber ich musste Cordova dafür verwenden. Hier sind die Schritte, die ich gemacht habe:

Im Terminal:

%Vor%

Navigieren Sie im Finder zu ~/path/to/project/platforms/ios/ und doppelklicken Sie auf projectname.xcodeproj , um das Projekt in Xcode zu öffnen.

Als nächstes ging ich rein und bearbeitete die Bilder. Du könntest es auf verschiedene Arten tun. Hier ist, was ich getan habe: Navigieren Sie in Xcode zu Resources/splash/ , klicken Sie mit der rechten Maustaste auf das zu ändernde Bild, wählen Sie Show in Finder und verwenden Sie die Werkzeuge, mit denen Sie die Bilder ändern möchten.

Sobald Sie fertig sind, gehen Sie zurück zu Xcode und öffnen Sie die root-level config.xml (Immer noch nicht sicher, warum es zwei config.xml Dateien gibt, aber Sie wollen die am weitesten in der Ordnerstruktur). Aktualisieren Sie die Eigenschaft AutoHideSplashScreen auf

<preference name="AutoHideSplashScreen" value="false" /> .

Wählen Sie im Xcode-Hauptmenü Product > Clean und dann Product > Build .

Arbeitete für mich wiederholt. Ich konnte dann die Methoden navigator.splashscreen.show() und navigator.splashscreen.hide() aus meiner App verwenden (die scheinbar nicht reagierte, ohne alle diese Schritte zu durchlaufen).

Hoffe, das hilft!

    
Brian Flanagan 21.08.2013 12:39
quelle
4

Ich habe ein Problem mit den Plugins oder ein Problem mit Phonegap so

%Vor%

funktioniert nicht für mich.

Ich habe es behoben, indem ich das webview alpha auf 0 gesetzt habe, bis es geladen ist:

3 Schritte:

  1. in der Datei "CDVViewController.m" in Methode " -(void)createGapView " Ich habe hinzugefügt:
    self.webView.alpha = 0;
  2. in der Datei "MainViewController.m" in Methode " -(void)WebViewDidFinishLoad:(UIWebView*)theWebView" Ich habe hinzugefügt: theVebView.alpha=1;
  3. in der Datei "MainController.xib" Ich habe den Hintergrund in Schwarz geändert (setze ihn auf eine beliebige Farbe).

Jetzt habe ich anstelle eines weißen Bildschirmblitzes einen schwarzen, bis der Inhalt vollständig geladen ist. gut genug für mich. (Obwohl nicht perfekt)

hoffe das hilft ..

    
Gdroid 13.12.2013 19:44
quelle
1

Versuchen Sie

hinzuzufügen

<param name="onload" value="true" /> für Ihre SplashScreen-Funktion in config.xml.

    
Hammer 11.07.2014 15:24
quelle
0

Dies funktionierte für mich mit build.phonegap.com

Schritt 1: Das Slashscreen-Plugin wurde zu Ihrer config.xml hinzugefügt

%Vor%

Schritt 2: Aktualisieren Sie Ihre config.xml mit dieser Einstellung.

%Vor%

Schritt 3: Hinzufügen des Plug-in-Funktionsaufrufs zum Ereignis "Gerät vorbereiten"

%Vor%     
Nick Treadway 08.04.2014 23:20
quelle
0

Nachdem ich mit dem Splash-Plugin verrückt geworden bin, finde ich diese Lösung heraus:

  1. Fügen Sie in MainViewController.xib ein UIImageView (imgView) hinzu.
  2. Platzieren Sie Ihr Splash-Bild darin und stellen Sie die zu füllende Skala ein.
  3. In MainViewController.m überschreiben Sie - (void) webViewDidFinishLoad: (UIWebView *) theWebView
  4. fügen Sie diesen Code nach [super webViewDidFinishLoad: theWebView];

    hinzu

    [self.view sendSubviewToBack: imgView];

    imgView.hidden = JA;

BillChan 25.09.2014 16:50
quelle

Tags und Links