Facebook
Twitter
LinkedIn

Les providers

Les providers (fournisseurs) vous permettent de créer un service autonome qui fournit certaines fonctionnalités à votre application. Le rôle d’un fournisseur peut inclure des tâches telles que l’extraction de données à partir d’un serveur, l’exécution d’opérations sur des données, le partage de données, la fourniture d’un ensemble d’opérations mathématiques compliquées, etc.

En général, nous utilisons des fournisseurs pour faire le gros du travail dans nos applications. En utilisant un fournisseur, nous extrayons la fonctionnalité qu’il fournit d’un composant spécifique, ce qui rend le code plus facile à maintenir et nous permet de réutiliser ce même fournisseur dans plusieurs endroits différents de l’application (ou même dans une application complètement différente).

Créer un Provider

Vous pouvez créer un nouveau fournisseur en utilisant la commande :

ionic g provider movie-api

Vous pouvez donner n’importe quel nom (movi-api) à votre provider.

Un fichier sera créé dans le dossier src/app/providers/ du même nom que votre provider..

.. et la classe MovieApiProvider de votre fichier .ts sera importée et déclarée automatiquement dans le tableau des providers du module racine de l’application app.module.ts.

Capture d’écran :

Votre Provider est maintenant en place, vous allez apprendre à l’exploiter.

Récupération de données à partir du serveur Remote Rest

Comme nous allons utiliser la classe HttpClient d’Angular, nous devons aussi importer HttpClientModule dans le module racine de l’application :

import { HttpClientModule } from '@angular/common/http';

et le déclarer dans le tableau imports

imports: [
    BrowserModule,
  HttpClientModule,
    IonicModule.forRoot(MyApp,{
      backButtonText: 'retour',
      backButtonIcon: 'ios-arrow-back',
      iconMode: 'md'
    }),
  ]

Capture d’écran

Dans le fichier .ts du provider commençons par définir un appel Rest avel le membre baseUrl..

private baseUrl: string = "https://domaine.com/ionic.php";

et un membre options qui contient des données à communiquer au fichier distant :

private options : any	= { "name" : 'roby', "description" : 'description' };

Capture d’écran

Dans notre cas les échanges s’effectueront avec un fichier PHP.

Nous allons implémenter dans le composant provider une méthode setProvider()  pour se connecter et transférer des données au fichier PHP :

setProvider():Observable<any> {
  return this.http.post(this.baseUrl,JSON.stringify(this.options));
}

Ne pas oublier d’importer l’objet Observable dans le fichier .ts du provider :

import { Observable } from "rxjs/Rx";

 

Utiliser le Provider dans l’une des pages de votre application

Importer dans l’une des pages .ts le provider :

import { MovieApiProvider } from "../../providers/movie-api/movie-api";

Déclarer dans le constructeur de classe la propriété  movieApiProvider :

constructor(
  public navCtrl: NavController,
  public navParams: NavParams,
  private movieApiProvider: MovieApiProvider) {
  }

Puis exécuter la méthode du provider :

this.movieApiProvider.setProvider().subscribe(data =>{
  console.log(data);
})

La méthode subscribe() permet d’observer le producteur de données.

Du coté de PHP, le script peut être implémenté de cette manière :

<?php
//Autorise le CROSS domaine
header("Access-Control-Allow-Origin: *");

// Récupération des données json en tableau
$json    =  file_get_contents('php://input');
$obj     =  json_decode($json);

// réponse au provider
echo json_encode('Congratulations the record ' . $obj->name . ' was updated');
?>

 

A lire aussi

tutowebdesign

Afficher du contenu au scroll

Afficher du contenu au scroll Voici un effet impressionnant et pourtant très facile à mettre en place sur vos pages. Le principe consiste à faire

Lire »