ngFor in Ion-list does not show bluetooth devices

0

This is the devices.ts

page
import { 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.

    
asked by thE madA 08.05.2017 в 19:13
source

0 answers