iPhone 5 écran d'accueil ne s'affiche pas correctement - Phonegap
Je suis à jour de mes PhoneGap iOS l'application pour la rendre compatible avec l'iPhone 5.
Je suis manuellement cacher l'écran de démarrage après mon application a été initialisé.
Lors de la simulation d'iPhone 5: Lorsque l'application démarre, il affiche le bon écran ([email protected]) (ci-après "le 5"), mais rapidement il la cache et affiche plutôt l'iPhone 4 à l'écran de démarrage (ci-après "le 4"). Le 4 ne permet pas de couvrir l'ensemble de l'application, montrant ainsi barres supérieure et inférieure de l'application en cours d'initialisation.
Je ne suis pas entièrement sûr de savoir comment il fonctionne, mais je pense à deux scénarios possibles:
1) les Deux images sont affichées simultanément, mais pour une raison quelconque, le 5 auto se cache tandis que les 4 attend l'appel à partir de l'app à cacher.
2) À un certain moment lors de la désactivation manuelle de cacher l'écran de démarrage phonegap commutateurs de la "vraie" splashscreen pour un "faux" celui qui est affiché jusqu'à ce que l'appel javascript à partir de l'app et de phonegap pourrait ne pas s'afficher correctement un après cette switcheroo.
Quelqu'un d'autre a rencontré et /ou résolu ce problème?
Mise à JOUR:
Essayé de l'enlever et de l'ajout de tous les éclaboussures des images de nouveau, mais en vain. J'ai essayé de supprimer les images plus petites (la 4 et de sa non-retina version), mais même sans les plus petits, présente dans le projet, je reçois la même erreur!
Mise à JOUR 2:
Cordova 2.2.0 a été libéré, ce qui permet de corriger ce problème en fonction de: http://shazronatadobe.wordpress.com/2012/10/27/whats-new-in-cordova-ios-2-2-0/
Donc, la solution serait donc de mettre à jour votre application pour utiliser Cordova 2.2.0, si c'est pour une raison pas possible, les solutions sont fournies ci-dessous.
- Avez-vous changé le
Launch Images
dans votre projet XCode? Avez-vous collez manuellement votre image splash (enyour_project
->Resources
->splash
)? - Oui! Essayé en supprimant et réinstallant tous les éclaboussures d'images, mais en vain
- Je crois que c'est effectivement un bug dans Cordova/PhoneGap -- il semble manuellement recharger l'image d'écran de démarrage, et lorsqu'il n'est pas sur un iPad, il prend par défaut le chargement du "par Défaut" de l'image (le classique de la taille d'éclaboussures). Doit être mis à jour pour vérifier la taille de l'écran, je suppose...
- J'ai déposé un bug pour Cordova/PhoneGap issues.apache.org/jira/browse/CB-1482
Vous devez vous connecter pour publier un commentaire.
J'ai reçu deux réponses ailleurs mais je n'ai pas eu le temps de tester encore:
De l'utilisateur T123 dans le Phonegap Groupe Google:
ouvrir CDVViewController.m-trouvez - (void) showSplashScreen
changement à propos de la ligne: 690
À partir de :
À:
Et de Brion, qui a commenté ci-dessus, les éléments suivants pull request, hoepfully à être incorporés dans Cordova 2.2.0: https://github.com/apache/incubator-cordova-ios/pull/50
EDIT: Essayé T123 solution et ça fonctionne pour moi!
EDIT2: Brion du correctif a été intégré dans Cordova 2.2.0 qui a maintenant été publié!
EDIT3: il suffit de mettre à jour pour mettre en surbrillance un commentaire pour ceux qui n'ont pas pris la peine de les lire:
Pour Phonegap version 1.4.1, j'ai réussi à obtenir Hessius fixer à travailler comme ça: j'ai copié les méthodes showSplashScreen, isIPad, resolveImageResource et de la définition de #define degreesToRadian(x) (M_PI * (x) /180.0) à partir du fichier PGViewController.m pour mon MainViewController.m de fichier. Après cela, XCode, s'est plaint que j'étais l'attribution des valeurs aux attributs en lecture seule, j'ai donc édité le fichier d'en-tête dans PhoneGap.cadre pour faire de ces deux attributs readwrite. J'ai aussi changé launchImageFilefrom Hessius du code de @"par Défaut". Cela a fait l'affaire pour moi. – Joe Dyndale Oct 8 '12 à 15:23
showSplashScreen
,isIPad
,resolveImageResource
et la définition#define degreesToRadian(x) (M_PI * (x) / 180.0)
à partir du fichierPGViewController.m
à monMainViewController.m
fichier. Après cela, XCode, s'est plaint que j'étais l'attribution des valeurs aux attributs en lecture seule, j'ai donc édité le fichier d'en-tête dans PhoneGap.cadre pour faire de ces deux attributsreadwrite
. J'ai aussi changélaunchImageFile
de Hessius du code de@"Default"
. Cela a fait l'affaire pour moi.Le correctif de ce (https://issues.apache.org/jira/browse/CB-1482) n'est pas jusqu'à 2.2. Il est très risqué d'utiliser la version instable et je n'ai pas pris la peine de compiler du code source moi-même, donc j'ai essayé les hack:
Dans MainViewController.m
Cela va désactiver showSplashScreen pour iPhone5 pour éviter les courts image de lancement ajouté par PhoneGap (iOS lancement initial de l'image s'affiche bien). Il a travaillé pour moi et j'ai à peine remarqué de différence par le piratage hors showSplashScreen pour iPhone5.
Blanc Scintillement
J'ai eu ce même problème avec Cordova 2.2. Je pense qu'il vaut la peine de mentionner que j'ai eu à prendre une étape supplémentaire afin d'obtenir l'écran de démarrage s'affiche correctement.
J'ai fait les modifications qui ont été inclus dans @Hessius réponse. Mais j'ai remarqué qu'un écran blanc flash a été produit après l'écran de démarrage est apparu.
Dans le (void)showSplashScreen méthode d'autres peuvent voir
De commenter le code(ou le retrait) que j'ai commenté, a éliminé le blanc scintillement je vois entre l'application de la charge et l'écran de lancement.
Espère que cela aide quelqu'un!