Bonjour à tous,

je développe actuellement une application mobile sur Ionic et je voulais quelques précisions quant aux différents événements liés à Cordova.

J'ai vu qu'il existait 3 événements communs aux différentes plateformes, à savoir deviceready, resume, et pause.
Je comprend parfaitement le rôle de chacun mais je me demandais une petite question quant à mon application...

Actuellement, une fois que l'événement deviceready est lancé, je créé une BDD avec Sqlite, je récupère des informations d'une API, puis je les sotck dans la BDD précédement créée/ouverte.

Voici comment se présente le code (simplifié) :

app.run(['$ionicPlatform', '$cordovaSQLite', 'initFactory', function($ionicPlatform, $cordovaSQLite, initFactory) {
    $ionicPlatform.ready(function() {
        // Database creation
        db = $cordovaSQLite.openDB({name: "bdd.db"});
        // j'initialise l'application
        initFactory.initApp(null).then(function success(response) {
            // j'appele l'API et je stock les infos en BDD
            initFactory.initDatabase().then(function success(response) {
            });
        });
    });

Pour l'instant tout fonctionne mais je me suis aperçu que ce n'était pas l'idéal comme système. En effet, j'ai mis en place un système de partage de contenu qui ouvre l'application correspondante (Fb, twitter...) mais lorsque je reviens sur mon application, le code précédement mentionné se relance, ce qui n'est pas excellent en terme de performance...
En fait, j'aimerais que cette partie ne se lance qu'une seule fois, lorsque l'application s'initialise pour la première fois.

J'ai bien pensé utilisé les événements resumeet pausemais il semblerait que ce n'est pas dans ce cas là qu'ils sont lancé...

Je voulais donc savoir si vous aviez déjà rencontré ce problème et si oui, comment vous aviez résolu ceci.

Je sais que je n'ai pas mis beaucoup de code (c'est un euphémisme !) mais le but de ce topic n'était pas de balancer du code mais uniquement d'avoir des pistes de réflections...

Merci d'avance pour vos réponse,

Romain

Aucune réponse