2012-07-02 17 views
5

Dopo aver caricato l'immagine di avvio, viene visualizzata una schermata bianca prima del caricamento dell'applicazione. Sto usando PhoneGap con xcode. Vorrei che la mia app si caricasse sulla mia immagine lauch in modo che seguisse le linee guida dello sviluppatore di ios e offrisse un lancio senza intoppi. Penso che questo schermo bianco sia un caricamento della pagina web per la mia applicazione. Mi piacerebbe che questa webview fosse chiara. Qualche idea su una soluzione per questo problema o una soluzione alternativa?Lo schermo bianco lampeggia dopo l'immagine di avvio utilizzando PhoneGap

Ho tentato il seguente codice e non ha fatto alcuna differenza sul mio avvio. Questo codice si trova nel mio MainViewController.m

-void (webViewDidFinishLoad:(UIWebView*) theWebView 
{ 
theWebView.backgroundColor = [UIColor clearColor]; 
theWebView.opaque = NO; 
} 

Ho ricercato questo molto, ma non ho trovato una soluzione.

risposta

2

È necessario sovrapporre un ModalViewController che simula l'immagine "Default.png" dopo il lancio, sovrapporre il controller della vista su UIWebView e mostrare un UIActivityIndicator, in modo che l'utente sappia che si sta caricando l'app. Una volta che la pagina web è terminata, puoi chiudere il tuo controller di visualizzazione.

Spero che questo aiuti.

+0

Sono nuovo di sviluppo. Puoi darmi un esempio o forse uno screenshot? Grazie! – stat8

0

Ho avuto un problema simile. Non l'ho risolto nel codice, piuttosto l'ho risolto nell'Editor UI. La finestra stessa che contiene uiwebview ha anche un colore di sfondo nelle proprietà. Questo può essere impostato sul colore di tua scelta per eliminare il bagliore del bianco. (Ho impostato il mio in nero.)

+0

Ho tentato di cambiare il colore di sfondo nel MainViewController.xib ma non ha ancora cambiato il colore di sfondo al momento del lancio. C'è un'altra posizione accanto allo xib per cambiare il colore di sfondo? Grazie! – stat8

2

Hai mai pensato di nascondere manualmente lo splash screen piuttosto che la pagina è pronta prima che scompaia?

window.setTimeout(function() { 
navigator.splashscreen.hide(); 
},1350); 

e SET AutoHideSplashScreen a NO nel file plist/Cordova PhoneGap

4

avevo affrontato lo stesso problema troppo, provare questi 3 passi che ho fatto per risolvere il problema:

  1. imposta AutoHideSplashScreen su NO nel file file plon per PhoneGap/Cordova

  2. Aggiungi questa linea al tuo metodo viewDidLoad di CDVMainViewController.m

    self.useSplashScreen = YES; 
    
  3. Poi aggiungere questo codice al metodo onDeviceReady()

    function onDeviceReady() 
    { 
    // do your thing! 
    cordova.exec(null, null, "SplashScreen", "hide", []); //On Cordova 1.6. 0 
    } 
    
+0

Perfetto! Grazie mille :) Lavorare con PhoneGap 2.4 –

+1

'useSplashScreen' è obsoleto: deprecato in Cordova 2.5. Aggiungi/Rimuovi il plug-in SplashScreen invece di impostare questa proprietà. Ho provato questa soluzione con PhoneGap 2.5 e jQueryMobile1.3, non funziona. Il file plist –

+0

è deprecato nelle versioni più recenti di Phonegap/Cordova; usa config.xml ora (dettagli nella mia risposta sotto) – ian

0

Come di Cordova/PhoneGap 3+, è necessario impostare la preferenza in config.xml:

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

Avrete anche bisogno del plugin:

cordova plugin add org.apache.cordova.splashscreen 

Poi,

document.addEventListener("deviceready", onDeviceReady, false); 
function onDeviceReady() { 
    // depending on how many things you are rendering on your webview, you might want to add an artificial wait 
    var SPLASH_SCREEN_DELAY = 500; 
    setTimeout(function() { 
    navigator.splashscreen.hide(); 
    }, SPLASH_SCREEN_DELAY); 
} 
0

stavo affrontando lo stesso problema, e dopo aver fatto qualche ricerca ho scoperto che questo è causato perché l'applicazione richiede un certo tempo per caricare tutti i css richiesto e File js .

Per risolvere il problema, è possibile utilizzare la schermata iniziale e anche ritardare il suo tempo, in modo che fino a quando tutti i file richiesti non vengano caricati, l'utente finale non vedrà uno schermo bianco senza senso, ma la nostra schermata iniziale personalizzata sarà visibile.

Ho risolto facendo riferimento alla prima e alla seconda parte della risposta data da "ian". Questi sono i passi che ho seguito.

Passaggio 1: installare il plug-in Cordova Splashscreen.

cordova plugin add org.apache.cordova.splashscreen

Fase 2: Impostare il Nascondi automaticamente Preferenze Splash Screen da file config.xml su false.

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

Fase 3: Aumentare il tempo di ritardo splash screen

<preference name="SplashScreenDelay" value="6000"/> 

Spero che questo aiuti qualcuno :)

Problemi correlati