Introducció
Ionic Native i Cordova són eines poderoses que permeten accedir a les funcionalitats natives del dispositiu des d'una aplicació híbrida. Aquest mòdul t'ensenyarà com integrar i utilitzar plugins per aprofitar aquestes funcionalitats.
Què són Ionic Native i Cordova?
- Ionic Native: És una col·lecció de plugins Cordova amb una interfície Angular. Proporciona una manera més fàcil i segura d'utilitzar plugins Cordova en aplicacions Ionic.
- Cordova: És una plataforma de desenvolupament d'aplicacions mòbils que permet utilitzar tecnologies web estàndard (HTML, CSS i JavaScript) per crear aplicacions que s'executen en dispositius mòbils.
Instal·lació de Plugins
Instal·lació de Cordova
Abans de començar a utilitzar plugins, assegura't que tens Cordova instal·lat:
Instal·lació de Plugins Ionic Native
Per instal·lar un plugin Ionic Native, primer has d'instal·lar el plugin Cordova corresponent i després el paquet Ionic Native.
Exemple: Instal·lació del Plugin de la Càmera
- Instal·la el plugin Cordova:
- Instal·la el paquet Ionic Native:
- Afegeix el plugin al teu mòdul Angular:
import { Camera } from '@ionic-native/camera/ngx'; @NgModule({ ... providers: [ Camera, ... ] }) export class AppModule { }
Utilització de Plugins
Exemple: Utilitzant el Plugin de la Càmera
- Importa i injecta el servei Camera en el teu component:
import { Component } from '@angular/core'; import { Camera, CameraOptions } from '@ionic-native/camera/ngx'; @Component({ selector: 'app-home', templateUrl: 'home.page.html', styleUrls: ['home.page.scss'], }) export class HomePage { constructor(private camera: Camera) { } takePicture() { const options: CameraOptions = { quality: 100, destinationType: this.camera.DestinationType.DATA_URL, encodingType: this.camera.EncodingType.JPEG, mediaType: this.camera.MediaType.PICTURE }; this.camera.getPicture(options).then((imageData) => { let base64Image = 'data:image/jpeg;base64,' + imageData; // Fes alguna cosa amb la imatge }, (err) => { // Gestiona l'error }); } }
Exemple: Utilitzant el Plugin de Geolocalització
- Instal·la el plugin Cordova:
- Instal·la el paquet Ionic Native:
- Afegeix el plugin al teu mòdul Angular:
import { Geolocation } from '@ionic-native/geolocation/ngx'; @NgModule({ ... providers: [ Geolocation, ... ] }) export class AppModule { }
- Utilitza el servei Geolocation en el teu component:
import { Component } from '@angular/core'; import { Geolocation } from '@ionic-native/geolocation/ngx'; @Component({ selector: 'app-home', templateUrl: 'home.page.html', styleUrls: ['home.page.scss'], }) export class HomePage { constructor(private geolocation: Geolocation) { } getCurrentLocation() { this.geolocation.getCurrentPosition().then((resp) => { let lat = resp.coords.latitude; let lon = resp.coords.longitude; // Fes alguna cosa amb la latitud i longitud }).catch((error) => { console.log('Error getting location', error); }); } }
Exercicis Pràctics
Exercici 1: Utilitzant el Plugin de la Càmera
- Objectiu: Crear una aplicació que permeti als usuaris fer una foto i mostrar-la en la pantalla.
- Passos:
- Instal·la el plugin de la càmera.
- Afegeix el servei Camera al teu component.
- Implementa una funció que faci una foto i la mostri en una etiqueta
<img>
.
Exercici 2: Utilitzant el Plugin de Geolocalització
- Objectiu: Crear una aplicació que mostri la ubicació actual de l'usuari en la pantalla.
- Passos:
- Instal·la el plugin de geolocalització.
- Afegeix el servei Geolocation al teu component.
- Implementa una funció que obtingui la ubicació actual i la mostri en la pantalla.
Solucions
Solució Exercici 1
import { Component } from '@angular/core'; import { Camera, CameraOptions } from '@ionic-native/camera/ngx'; @Component({ selector: 'app-home', templateUrl: 'home.page.html', styleUrls: ['home.page.scss'], }) export class HomePage { public base64Image: string; constructor(private camera: Camera) { } takePicture() { const options: CameraOptions = { quality: 100, destinationType: this.camera.DestinationType.DATA_URL, encodingType: this.camera.EncodingType.JPEG, mediaType: this.camera.MediaType.PICTURE }; this.camera.getPicture(options).then((imageData) => { this.base64Image = 'data:image/jpeg;base64,' + imageData; }, (err) => { console.log('Error taking picture', err); }); } }
Solució Exercici 2
import { Component } from '@angular/core'; import { Geolocation } from '@ionic-native/geolocation/ngx'; @Component({ selector: 'app-home', templateUrl: 'home.page.html', styleUrls: ['home.page.scss'], }) export class HomePage { public latitude: number; public longitude: number; constructor(private geolocation: Geolocation) { } getCurrentLocation() { this.geolocation.getCurrentPosition().then((resp) => { this.latitude = resp.coords.latitude; this.longitude = resp.coords.longitude; }).catch((error) => { console.log('Error getting location', error); }); } }
Errors Comuns i Consells
-
Error: "Plugin not installed" (Plugin no instal·lat).
- Solució: Assegura't que has instal·lat el plugin Cordova i el paquet Ionic Native correctament.
-
Error: "Permission denied" (Permís denegat).
- Solució: Assegura't que la teva aplicació té els permisos necessaris configurats en el fitxer
config.xml
i que l'usuari ha concedit els permisos.
- Solució: Assegura't que la teva aplicació té els permisos necessaris configurats en el fitxer
Conclusió
En aquest tema, has après com instal·lar i utilitzar plugins Ionic Native i Cordova per accedir a les funcionalitats natives del dispositiu. Has vist exemples pràctics amb els plugins de la càmera i la geolocalització, i has tingut l'oportunitat de practicar amb exercicis. Ara estàs preparat per explorar altres plugins i ampliar les capacitats de la teva aplicació Ionic.
Curs de Desenvolupament Ionic
Mòdul 1: Introducció a Ionic
- Què és Ionic?
- Configuració de l'Entorn de Desenvolupament
- Creant la Teva Primera App Ionic
- Entenent l'Estructura del Projecte
- Executant i Depurant la Teva App
Mòdul 2: Components Bàsics i Navegació
- Visió General dels Components Ionic
- Utilitzant Botons i Icones Ionic
- Creant i Utilitzant Pàgines
- Navegació i Enrutament
- Pestanyes i Menús Laterals
Mòdul 3: Estilització i Tematització
- Introducció a l'Estilització Ionic
- Utilitzant CSS i SCSS en Ionic
- Tematitzant la Teva App Ionic
- Disseny Responsiu en Ionic
- Personalitzant Components Ionic
Mòdul 4: Treballant amb Dades
- Introducció al Binding de Dades
- Utilitzant Serveis Angular
- Peticions HTTP i APIs
- Emmagatzemant Dades Localment
- Utilitzant Ionic Storage
Mòdul 5: Components i Funcionalitats Avançades
- Utilitzant Formularis Ionic
- Validació i Gestió d'Errors
- Utilitzant Plugins Ionic Native i Cordova
- Accedint a Funcionalitats del Dispositiu
- Notificacions Push
Mòdul 6: Proves i Desplegament
- Proves Unitàries en Ionic
- Proves de Cap a Cap
- Construint per a Producció
- Desplegant a les Botigues d'Aplicacions
- Integració i Lliurament Continu