This is the devices.ts
pageimport { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { LoadingController } from 'ionic-angular';
import { AlertController } from 'ionic-angular';
import { Range } from 'ionic-angular';
import { BLE } from 'ionic-native';
import * as ble from "../../../plugins/cordova-plugin-ble-central/www/ble.js"
@Component({
selector: 'page-dispositivos',
templateUrl: 'dispositivos.html'
})
export class DispositivosPage {
constructor(public navCtrl: NavController,
public loadingCtrl: LoadingController,
public alertCtrl: AlertController) {}
enableBluetooth(){
ble.isEnabled(function() {
console.log("Bluetooth activado");
}, this.bluetoothAlert());
}
bluetoothAlert(){
let alert = this.alertCtrl.create({
title: '¿Deseas activar el Bluetooth?',
buttons: [
{
text: 'Cancelar',
handler: data => {
console.log('Cancel clicked');
}
},
{
text: 'Activar',
handler: data => {
ble.enable();
}
}
]
});
alert.present();
}
scanDevices() {
let devices = [];
ble.startScan([], function(device) {
devices.push(device);
}, console.log("Fallo en metodo scanDevice"));
this.presentLoading();
setTimeout(ble.stopScan,
5000,
function() {
console.log('Escaneado finalizado, Dispositivos encontrados');
console.log(JSON.stringify(devices));
},
function() { console.log("stopScan failed"); }
);
let dispositivos = JSON.stringify(devices);
return dispositivos;
}
//connectDevice(id){
// ble.connect(id, this.funciona(), this.nofunciona());
//}
printScanCompleted(){
let alert = this.alertCtrl.create({
title: 'Escaneado completado',
buttons: ['OK']
});
alert.present();
}
presentLoading() {
this.loadingCtrl.create({
content: 'Escaneando...',
duration: 5000,
dismissOnPageChange: false
}).present();
}
NoDevicesFoundAlert(){
let alert = this.alertCtrl.create({
title: 'No funciona',
buttons: ['Aceptar']
});
alert.present();
}
}
and this one, dispositivos.html
<ion-header>
<ion-navbar>
<ion-title>
Dispositivos
</ion-title>
</ion-navbar>
</ion-header>
<ion-content>
<ion-list>
<ion-list-header>Dispositivos visibles</ion-list-header>
<!--<div *ngFor="let device of devices">
<input type="text" [(ng-model)]="devices">{{device}}
</div> -->
<ion-item *ngFor="let device of dispositivos">
<ion-icon name="phone-portrait" item-left></ion-icon>
<ion-input type="text" [(ngModel)]="dispositivos">{{"device"}}</ion-input>
</ion-item>
</ion-list>
<ion-content class="center">
<p style="text-align: center;">
<button ion-button color="primary" icon-only (click)="enableBluetooth()">
<ion-icon name='bluetooth'></ion-icon>
</button>
<button ion-button color="secondary" icon-only ng-disabled="true" (click)="scanDevices()">
<ion-icon name='search'></ion-icon>
</button>
</p>
</ion-content>
</ion-content>
The question is, how can I print the Bluetooth devices that find the scanDevices () method (all using the BLE plugin) in the ion-list ?
Thank you very much.