Quantcast
Channel: Ionic Forum - Latest topics
Viewing all articles
Browse latest Browse all 70435

Reading qrcode with Ionic4: How to retrieve the value read from an asynchronous service provider

$
0
0

@ioclaudio wrote:

Hi,
I’d like to read the text of a QR code from a page, using a service provider that manages the scan features. Really I only have to get a number from this QR Code, but I have a function that does this job (getIdFromMessage) and it is working.

I don’t know how to retrieve the value read in the service provider because the method used to scan the QR code is asynchronous.
I thought to use a callback that sets in the page the text read from the service provider, so I’ have a page with this code:

// callback to set the deviceId property of the page
  public setDeviceId(deviceId) {
    alert('@@@ setDeviceId:' + deviceId);
    this.deviceId = deviceId;
  }

// the action that calls the services provider
  actionScanQrCode() {
    console.log('actionScanQrCode');
    // Passing a callback to the qrcode reader
    this.qrcodeManager.readScooterIdFromBarcode(this.setDeviceId);
  }

And a service provider with this code:

// the function that reads the QRCode
    readScooterIdFromBarcode(callback) {
      this.barcodeScanner
        .scan()
        .then(barcodeData => {
         let barcodeText: string;
          barcodeText = barcodeData.text;
          let deviceId: number;
          deviceId = Number(this.getIdFromMessage(barcodeText));:
          alert("@@@ deviceId: ", deviceId);
          callback(deviceId);
....

When I read the barcode, the function setDeviceId prints the right number, but after I have the error
TypeError: Cannot set property ‘device’ of undefined”.

So the callback isn’t working.
Is it the right way to retrieve the read value from an asynchronous function?

Thank you very much

cld

Posts: 1

Participants: 1

Read full topic


Viewing all articles
Browse latest Browse all 70435

Trending Articles