Проблема, когда приложение сканирует штрих-коды, которые генерируются и отображаются в / бэкэнд - PullRequest
0 голосов
/ 29 мая 2019

У меня проблемы с двумя пакетами, которые я сейчас использую, и которые будут открыты для замены. Это мой вариант использования: часть бэкэнда должна генерировать код. Интерфейс должен сканировать код. Затем внешний интерфейс должен получить полученные данные по запросу без ошибок.

Я пробовал https://github.com/milon/barcode в бэкэнде вместе с ионной версией плагина Cordova Scan, https://ionicframework.com/docs/native/barcode-scanner

Проблема в том, что я получаю измененные коды (часто одно или два числа отличаются) при сканировании, и поскольку коды не совпадают с сервером, я не получаю связанные данные (все привязано к коду, а не Идентификатор)

import { BarcodeScanner } from '@ionic-native/barcode-scanner/ngx';

constructor(private barcoder: BarcodeScanner)

//some function in the frontend
 this.barcoder.scan(
        {
          preferFrontCamera : false, // iOS and Android
          showFlipCameraButton : true, // iOS and Android
          showTorchButton : true, // iOS and Android
          torchOn: false, // Android, launch with the torch switched off 
          prompt : "Place a barcode inside the scan area", // Android
          resultDisplayDuration: 500, // Android, display scanned text for X ms.
          orientation : "landscape", // Android only (portrait|landscape), default unset so it rotates with the device
          disableAnimations : true, // iOS
          disableSuccessBeep: true // iOS and Android
        }
      )
      .then(data =>
        {
          if(data.cancelled){
            alert( "Scanning failed because " + data.cancelled);
          }
          else {
            alert(
              "We got a barcode\n" +
              "Result: " + data.text + "\n" +
              "Format: " + data.format
            );
          }

        }
      )
      .catch(err =>
        {
          alert("Scanning failed: " + err)
        }
      );
    }

//Laravel blade example
  {!! \Milon\Barcode\DNS2D::getBarcodeSVG($tag->code, $tag->type) !!}
//Laravel Controller php example

return view('backend.tag.edit')
            ->withTag($tag)
            ->with('puzzlepieces', $puzzlepieceRepository->getByTag($tag));
//Laravel Model example

 protected $fillable = [
        'name',
        'type',
        'code',
        'some more
    ];


    //Für die erste Beta brauchen wir nur QR Codes.
    protected $types = ['EAN8' => 7, 'EAN13' => 12, 'UPCA' => 11, 'UPCE' => 6, 'C128' => 128, 'C39' => 43, 'QRCODE' => 1817];

    public static function getTypes()
    {
        return (new self())->types;
    }

    public static function getMaxLenForType($type)
    {
        return self::getTypes()[$type] ?? 0;
    }

    public static function type($key)
    {
        return self::getTypes()[$key] ?? '';
    }

Ожидаемым результатом будет то, что я получу тот же определенный код в Бэкэнде, сканируя в Frontend

...