Как читать данные сканера штрих-кода с Bluetooth в Ionic 3

У меня есть демонстрационное приложение, в котором я хочу читать / получать данные со сканера штрих-кода с помощью подключаемого модуля Bluetooth в Ionic 3. Я хочу, чтобы данные отображались в моем приложении, как только сканер штрих-кода просканирует код.

Мой файл .ts выглядит так:

import { Component } from '@angular/core';
import { BluetoothSerial } from '@ionic-native/bluetooth-serial';
import { AlertController } from 'ionic-angular';

@Component({
  selector: 'page-home',
  templateUrl: 'home.html'

})
export class HomePage {

  unpairedDevices: any;
  pairedDevices: any;
  gettingDevices: Boolean;
  inputData: string = "";
  data: string = "";
  constructor(private bluetoothSerial: BluetoothSerial, private alertCtrl: AlertController) {
    bluetoothSerial.enable();
  }

  startScanning() {
    this.pairedDevices = null;
    this.unpairedDevices = null;
    this.gettingDevices = true;
    this.bluetoothSerial.discoverUnpaired().then((success) => {
      this.unpairedDevices = success;
      this.gettingDevices = false;
      success.forEach(element => {

      });
    },
      (err) => {
        console.info(err);
      })

    this.bluetoothSerial.list().then((success) => {
      this.pairedDevices = success;
    },
      (err) => {

      })
  }
  success = (data) => alert(data);
  fail = (error) => alert(error);

  selectDevice(address: any) {

    let alert = this.alertCtrl.create({
      title: 'Connect',
      message: 'Do you want to connect with?',
      buttons: [
        {
          text: 'Cancel',
          role: 'cancel',
          handler: () => {
            console.info('Cancel clicked');
          }
        },
        {
          text: 'Connect',
          handler: () => {
            this.bluetoothSerial.connect(address).subscribe(this.success, this.fail);
                 this.bluetoothSerial.available().then(data =>{

                  console.info("Available " + (data));

                  this.bluetoothSerial.read().then(data =>{

                    console.info("Read " + (data));
                    this.data=this.inputData ;

                  //  this.navCtrl.push(WelcomePage);

                  });
                });
                      }

        }
      ]
    });
    alert.present();

  }



  disconnect() {
    let alert = this.alertCtrl.create({
      title: 'Disconnect?',
      message: 'Do you want to Disconnect?',
      buttons: [
        {
          text: 'Cancel',
          role: 'cancel',
          handler: () => {
            console.info('Cancel clicked');
          }
        },
        {
          text: 'Disconnect',
          handler: () => {
            this.bluetoothSerial.disconnect();
          }
        }
      ]
    });
    alert.present();
    }
}

и мой файл html выглядит так

    <ion-list padding>
  <button ion-button block (click) = "startScanning()">scan</button>
  <ion-list-header>
    Paired Devices
  </ion-list-header>
  <ion-item *ngFor = "let device of pairedDevices">
    {{device.name}}
  </ion-item>
  <button ion-button block (click) = "disconnect()">Disconnect</button>
  <ion-list-header>
    availlable Devices
  </ion-list-header>
  <ion-item *ngFor='let device of unpairedDevices'>
    <span (click) = "selectDevice(device.address)">
      {{device.name}}
    </span>
  </ion-item>
  <ion-spinner name = "crescent" *ngIf = "gettingDevices"></ion-spinner>
      <ion-label stacked>display</ion-label>
      <ion-input  type = "text" readonly = ""  [(ngModel)] = "inputData">{{data}}</ion-input>
    </ion-item>    

</ion-list>

Мой плагин Bluetooth работает нормально. Сканер штрих-кода подключен, но когда я сканирую штрих-код, данные не отображаются. Не знаю почему.

0
0
839
1

Ответы 1

Вам не нужно использовать этот плагин. Просто подключите его к телефону через Bluetooth, и он будет работать с любым входом.

если мой ответ вас не удовлетворяет. Я имею ввиду, что это нормально. Но это работает для меня.

DavElsanto 03.01.2019 22:32

Нет, данные все еще не отображаются. Я использую этот плагин, потому что хочу открыть Bluetooth прямо из своего приложения.

Saif khan 14.05.2019 12:45

Другие вопросы по теме