2014-09-18 3 views
2

J'ai mis à jour un projet de Cordova 3.4 à 3.6.3 et tout s'est écroulé (comme d'habitude).L'installation du plugin de notification Cordova a échoué (Cordova 3.6)

Mais spécifiquement, ici, le plugin org.apache.cordova.dialogs ne fonctionne pas en exécution sur ios.

Cordova dit le plug-in est installé:

$ cordova plugins ls 
org.apache.cordova.dialogs 0.2.9 "Notification" 
org.apache.cordova.vibration 0.3.10 "Vibration" 

En config.xml (l'un à l'extérieur du répertoire des plates-formes) J'ai ajouté:

<feature name="Notification"> 
    <param name="ios-package" value="CDVNotification" /> 
</feature> 

Quand, en JavaScript, je tente de créer une alerte comme celle-ci (et oui le périphérique est prêt):

navigator.notification.alert("Test alert", null); 

Je reçois cette erreur dans le débogage XCode er (j'ai ajouté des sauts de ligne pour la lisibilité)

2014-09-18 15:03:26.327 Milk[3045:60b] 
CDVPlugin class CDVNotification (pluginName: Notification) does not exist. 
2014-09-18 15:03:26.328 Milk[3045:60b] 
ERROR: Plugin 'Notification' not found, or is not a CDVPlugin. Check your plugin mapping in config.xml. 
2014-09-18 15:03:26.329 Milk[3045:60b] 
-[CDVCommandQueue executePending] [Line 158] FAILED pluginJSON = [ 
    "INVALID", 
    "Notification", 
    "alert", 
    [ 
    "Test alert", 
    "Alert", 
    "OK" 
    ] 
] 

J'ai essayé cordova plugin rm/cordova plugin add et courir aussi cordova platform rm pour ajouter et supprimer ios. Donc: "CDVPlugin class CDVNotification (pluginName: Notification) n'existe pas."?

Cordova dit qu'il est installé, comment puis-je résoudre ce problème?

+0

devrais-je utiliser Plugman pour installer des plugins? J'ai lu la documentation [ici] (https://cordova.apache.org/docs/fr/3.0.0/plugin_ref_plugman.md.html) mais tout est très confus et les exemples en bas quand collés directement ne fonctionnent pas . Tous très déconcertant et mal documenté. – Ade

+0

Même chose ici, ne fonctionne pas aussi avec les plugins de géolocalisation et de contacts. Si vous avez une autre solution, faites le moi savoir. – dbaq

Répondre

2

J'ai globalement rétrogradé à Cordova 3.5 et maintenant il semble OK.

sudo npm uninstall cordova -g 
sudo npm install -g [email protected] 
3

Voici ce que j'ai fait pour résoudre ce problème.

Dans Xcode, vous devez ajouter les sources de plug-in dans les phases de construction.

  1. sélectionnez votre projet
  2. sélectionner la cible de votre projet
  3. cliquez sur les phases de construction onglet
  4. ajouter les manquants fichiers * .m
  5. compilez

Vous pouvez donner Essayez-le facilement en mettant à jour via sudo npm update -g cordova et en revenant avec vos commandes si cela ne fonctionne pas. Faites le moi savoir.

Aussi, si vous avez encore quelques erreurs après cela, assurez-vous inclus tous les cadres nécessaires:

Dans le même onglet (Build phases), vous avez Lien binaire avec les bibliothèques (articles xx)

pour le plugin de contact dont vous avez besoin:

  • AddressBook.framework
  • AddressBookUI.framework

pour la caméra que vous devez Plugin:

  • OpenAL.framewrok
  • ImageIO.framework

pour la notification, vous devez plug-in:

  • AudioToolBox.framewrok

pour le périphérique plug-in dont vous avez besoin:

  • AssetsLibrary.framework

Vive

xcode configuration

3

@ icl1c Votre réponse n'a pas fonctionné tout à fait pour moi, a une autre erreur après ajouter CDVNotification.m à la phase de construction.

Ce que je devais faire était d'ajouter le framework dépendant: AudioToolbox.framework aussi pour le faire fonctionner.

enter image description here

+0

Oui, vous avez raison, cela pourrait arriver aussi. J'ai mis à jour ma réponse avec la liste des frameworks à inclure pour certains plugins. – dbaq

0

réponse @jBoive en plus d'ajouter ci-dessous le code dans config.xml, fixé mon problème:

<feature name="Notification"> 
    <param name="ios-package" value="CDVNotification" /> 
</feature>