Un plugin molto utile nello sviluppo di applicazioni ibride che intendono sfruttare le funzionalità hardware del dispositivo su cui girano è il plugin Diagnostic. Esso ci consente di verificare se una determinata funzionalità hardware è supportata o se è disponibile per l'applicazione.
Ad esempio, tramite questo plugin possiamo verificare se è possibile accedere al dispositivo di geolocalizzazione, se è attivo l'accesso ad una rete Wi-Fi, se il Bluetooth è disponibile, ecc.
Verificare la presenza della fotocamera
Per fare un esempio, vediamo come accertarci che il dispositivo su cui gira la nostra applicazione sia dotato di una fotocamera:
import { Component } from '@angular/core';
import { NavController, Platform } from 'ionic-angular';
import { Diagnostic } from 'ionic-native';
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
constructor(public navCtrl: NavController, platform: Platform) {
platform.ready(() => {
Diagnostic.isCameraPresent()
.then(isPresent => {
if (isPresent) {
// usa la fotocamera
}
});
});
}
}
Il metodo isCameraPresent()
restituisce una Promise la cui risoluzione fornisce un booleano che stabilisce la presenza o meno della fotocamera.
Naturalmente la presenza della fotocamera sul dispositivo corrente non ci dà automaticamente l'autorizzazione ad utilizzarla. Questa autorizzazione viene data dall'utente quando installa la nostra applicazione. Quindi, per evitare di ottenere un errore di permessi nell'accesso alla fotocamera, è opportuno accertarsi che l'applicazione abbia le autorizzazioni necessarie. Possiamo fare questo tramite il metodo isCameraAuthorized()
che, analogamente al metodo precedente, restituisce una Promise.