Cordova : Plugins

Bonjour,

Objectifs

Cordova / Ionic propose un système de plugins dont le but est double :

Lors du dernier article (ici), j’ai testé différents plugins pour la gestion de la communication Bluetooth. L’idée est donc est de comprendre comment un plugin fonctionne et comment il est possible d’en mettre un en place. On fera le bilan à la fin de la journée.

Plus

Cordova/Ionic ont les dents bleus

Bonjour,

Objectifs

Dans le cadre de projets “persos”, je me suis intéressé à la techno NFC, mais pas à la techno Bluetooth. L’objectif du jour est de corriger cela en regardant particulièrement comment cela peut fonctionner avec Cordova ou Ionic … Le titre est en référence à cette vidéo. Comme d’habitude, cette séance de travail commence par une bonne phase de lecture dont les liens intéressants sont en bas de page.

Plus

[Ionic2] Nav et params

Un petit rappel …

Appel :

this.navCtrl.push(
      AndroidItemPage
      , { device: $event.value }
    );

Page :

constructor(public navCtrl: NavController, public params:NavParams) {
    this.deviceInfo = this.params.get("device");
} // /constructor

[Git][SubModule] Supprimer un submodule

Tellement en ajouter un c’est simple :

git submodule add [repo] [folder]

Tellement un supprimer un … c’est plus compliqué :

  • Suppression de la référence au submodule dans .gitmodules (normalement, il y a trois lignes)

  • Intégration (commit) de la modification dans le repo (un stage (add) doit suffire mais bon)

  • Suppression de la référence au submodule dans .git/config (normalement, il y a deux lignes,

  • Execution de

    git rm --cached [rep/du/submodule]
  • Execution de

    rm -rf .git/modules/submodule_name
  • Commit !

  • Exécution de

    rm -Rf [rep/du/submodule]

Voilà …

[Jasmine] Tester une fonction qui retourne une Promise

En surfant, j’ai trouvé plein de trucs compliqués mais au final, voici quelques choses qui fonctionnent bien :

// getLocalContainer
it('LocalContainerService : getLocalContainer 1stTime', (done) => {
    service.getLocalContainer(defaultCode).then(function(obj) {
       expect(defaultCode).toBe('to be found');
       done();
    }).catch(function(err) {
       expect(err).toBe('NOTFOUND');
       done();
    });
});

L’astuce est de passer en paramètre done. Les explications sont ici. Différents exemples : ici. Par défaut, l’attente est assez courte si il y a plusieurs appels. Il est possible de le modifier :

// Instanciation of service
beforeEach(() => {
   originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
   jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000;
});

afterEach(function() {
  jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout;
});

Auth0

Présentation

Toujours dans l’optique de rattraper mon retard : cette semaine c’est Auth0. Il s’agit d’un service/provider d’authentification disponible sous la forme d’un service. D’après la documentation, il permet d’intégrer dans son application des connecteurs vers différents types de sources d’authentification : réseaux sociaux, bases de données, etc.

Plus

[Karma] Inclure une librairie

Un truc surement basique mais quand on connait pas. Dans un service, j’ai besoin d’un fichier JS que j’ai un peu injecté à la main (bouhh). Bon ben forcément dans les tests, il le faut aussi. Pour cela, il faut modifier le fichier karma.conf.js et ajouter le fichier :

files: [
   { pattern: './src/assets/vendors/loki/loki-indexed-adapter.js', included: true, watched: false }
 , { pattern: './src/test.ts', watched: false }
]