Bonjour à tous,

Je fait face à un problème de fou et je désèspère. D'autant plus que cela va etre dure de vous expliquer le problème car j'utiise plusieurs Framework
Je vais faire au mieux sachant que ma question est lié à javascript
Je n'ai que peux d'expérience dans l'application que je fais et je en vous explique pas comment je galère...

Envioronnement
  • Cordova 10
  • Jery Mobile
  • Android Studio 4.1
  • Xcode 12



Résumé
Mon APP affiche la position de station qui mesurent la température des bourgeons qui émergent. Si la température est au dessous d'un seuil, le téléphone soit sonner pour avertir l'exploitant afin qu'il puisse agir rapidement (placement de très grosse bougie pour réchaufer la zone).

Les données sont sauvées en temps réel dans une base de donnée MySQL.

Toutes les 5mn, mon APP questionne la base de donéée et met à jour les valeurs qui sont affichés sur une carte. Tout cela fonctionne très bien, sauf que lorsque l'APP est en backgound, il n'y a plus de requete MySQL et donc plus d'alerte sur le smartphone.

Pour résoudre ce problème, je dois mettre en place un system de Push Notification. (et je ne suis pas sorti de l'auberge car faudra que je trouve encore comment mon sevreur va envoyer ces messages )

Le problème
Je me pose très sérieusement si j'ai fait un bon choix en choissant Cordova.
J'ai installé le plugin cordova-plugin-fcm et juste avec cette tâche, j'y ai passé la journée car bug partout. Miantenant qu'il est bien installé, je dois ajouter du code dans mon fichier javasctipt (jQuery Mobile) selon l'exemple,

Ne sachant pas ou trop mettre ce code, je l'ai mis dans (jquery mobile)

Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
$( document).on( "pagebeforeshow", "#home", function( e ) {
 
    FCMPlugin.getToken(function(token){
        alert(token);
      },
      function(err){
        alert(err);
        console.log('error retrieving token: ' + err);
      }
    );
 
 
} );

Mais ceci génère une erreur que voici

Uncaught ReferenceError: require is not defined
<anonymous> http://localhost:8000/FCMPlugin.js:1

Uncaught TypeError: FCMPlugin.getToken is not a function
<anonymous> http://localhost:8000/js/index.js:1395
jQuery 28
Comment est-ce possible????

Donc je me suis dit que cette fonction est spécifiée à nul part, il ne la trouve pas.

J'ai ensuite trouvé ceci et j'ai mis ce fichier à la racine (pour essayé) en ajoutant ceci dans ma page html

Code : Sélectionner tout - Visualiser dans une fenêtre à part
<script src="FCMPlugin.js"></script>
mais cela n'a pas résolu mon problème. De plus que cette étape, à mon sense, ne sert à rien car ce fichier est dans le dossier de mon plugin
Cordova/smartbud/plugins/cordova-plugin-fcm/www/FCMPlugin.js
Il est probable que rien ne pointe sur ce fichier. d'ou la raison de ce message

Uncaught TypeError: FCMPlugin.getToken is not a function
<anonymous> http://localhost:8000/js/index.js:1395
jQuery 28
Je suis complétement perdu dans les démarches à entreprendre pour débuguer ce problème, mais je demandais, sachant qu'on sait ou ce trouve ce fichier, comment indique à mon code ou se trouve la classe en lien.

Aïe, cette dernière phrase me semble tellement incompréhensible, mais avec ce type de message d'erreur, sur quel piste partiriez-vous?
N'hésitez pas à me demander des informations complémentaires!!!

Merci