Je veux déboguer mon app PhoneGap dans Xcode, mais sa Console ne peut pas afficher les erreurs javascript.
Réponses
Trop de publicités?La façon la plus élégante de vue et de débogage des erreurs JavaScript dans votre Cordova/PhoneGap Application est par la fixation de l'Inspecteur Web à partir de votre navigateur Safari à la Vue Web dans votre Application iOS (mais, comme Tom Clarkson déjà mentionné précédemment, vous aurez besoin d'au moins iOS 6).
- Sur votre iPhone ou iPad l'Application Paramètres pour permettre à l'Inspecteur Web, dans les Paramètres Avancés pour Safari
- Connectez votre appareil à votre Mac via le port USB (il apparaîtra alors dans le menu développement de Safari)
- Démarrez votre Application
- Accédez à la Vue Web que vous souhaitez déboguer
- Sur le Mac, Safari Développer le menu, sélectionnez le nom de votre appareil et de l'Application (sa page HTML), à partir de son sous-menu
- Un Inspecteur Web fenêtre va s'ouvrir, vous permettant de parcourir le DOM, définir des points d'arrêt, etc.
Un tutoriel très complet sur cette mise en place:
http://webdesign.tutsplus.com/tutorials/workflow-tutorials/quick-tip-using-web-inspector-to-debug-mobile-safari/
iOS 7
Afin d'utiliser l'inspection web à distance sur un appareil, qui fonctionne sur iOS 7, vous aurez besoin de Safari 6.1+.
Collez le texte suivant quelque part près de la commencent de votre document afin qu'il soit exécuté avant que l'un de vos autres JavaScript.
<script type="text/javascript">
window.onerror = function(message, url, lineNumber) {
console.log("Error: "+message+" in "+url+" at line "+lineNumber);
}
</script>
Et profiter de l'affichage des détails de vos erreurs Javascript dans la fenêtre de la console de Xcode.
Mise à JOUR: La technique ci-dessus du journal des erreurs telles que des variables non définies. Mais les erreurs de syntaxe telles que l'absence de virgules sera toujours provoquer le script en entier pause sans rien journalisation.
Par conséquent, vous devez ajouter le texte suivant au début de votre onDeviceReady fonction:
console.log('Javascript OK');
Si vous ne voyez pas "JavaScript OK" apparaît dans la fenêtre de votre journal lorsque l'application est lancée, alors cela signifie que vous avez une erreur de syntaxe quelque part.
Pour enregistrer de la chasse pour la manque des virgules, la chose la plus simple est de coller votre code dans un programme de validation Javascript comme celui-ci:
http://www.javascriptlint.com/online_lint.php
et le laisser trouver l'erreur pour vous.
Espérons que prend la douleur hors de débogage.
Notez qu'avec 0.9.2 (sorti aujourd'hui), de la console.le journal a été normalisés sur les plates-formes pour l'enregistrement (avec debug.journal obsolète).
Il y a une fonction qui est disponible sur le bureau WebView qui n'est pas exposée dans l'iOS UIWebView qui va attraper toutes les erreurs (je suis en train de pirater que les fonctionnalités d'un plugin, qui utilise des Api privées, mais le plugin ne serait que pour le développement), mais pour l'instant, faire ce que Kris suggéré ci-dessus et mettre des blocs try catch sur le code et l'utilisation de la console.journal
Pour attraper rapidement possible les erreurs de syntaxe, lors de l'élaboration de j'ai la page chargée dans le bureau de Safari et de rafraîchir rapidement avec le webkit console d'erreur visible.
debug.journal d'envoyer des messages à la console de XCode sur Phonegap (vous permettant de connecter le résultat d'une exception ou faire un peu de débogage), cependant, il est exact que vous devez déboguer d'autres erreurs javascript dans Safari (sur le bureau ou sur l'iphone avec la Console de Débogage activé). Je n'ai pas encore trouvé une erreur Javascript, qui a été causée par l'exécution sur l'iphone et n'était pas présent lors du débogage avec la console allumée dans Safari (même si je sais qu'il y a peu de différences entre la WebView et Safari sur l'iphone).
Pour la fabrication de débogage javascript travail dans Xcode, je voudrais prendre un coup d'oeil à la suivante.
http://phonegap.com/2011/05/18/debugging-phonegap-javascript/
http://www.daveoncode.com/2010/01/12/debugging-phonegap-applications-using-xcode-console/
Comme mesure supplémentaire de dépannage va...
Pour commencer, vous pouvez exécuter l'application dans safari sur votre pc et d'utiliser safari du débogueur (ou google chrome, comme les deux sont similaires moteurs de rendu). Ce ne sera pas touché sur l'avancée des erreurs de logique et de bon nombre de vos problèmes d'api, mais il à tout le moins devrait vous aider à résoudre de nombreux problèmes de base (javascript, HTML5, etc....).