protected override void OnDisappearing() { if (barCodeString == "") { BarcodeRead?.Invoke(this, barCodeButton + ": Não foi possível ler o código."); } zXing.IsScanning = false; base.OnDisappearing(); }
public void Handle_OnScanResult(Result result) { //pega as informações do código lido e exibe Device.BeginInvokeOnMainThread(async() => { if (!PopUp) { PopUp = true; BarcodeRead?.Invoke(this, result.BarcodeFormat + ": " + result.Text); btnResult.Text = result.BarcodeFormat + ": " + result.Text; await DisplayAlert("Código " + result.BarcodeFormat, result.BarcodeFormat + ": " + result.Text, "OK"); PopUp = false; } }); }
//Timer elapses private void OnTimedEvent(object sender, ElapsedEventArgs e) { //Is it a barcode? if ((timestarted.AddMilliseconds(600) > DateTime.Now) && (possible.Length > 5) && (timestarted != DateTime.MinValue) && possible.Contains("\r")) { barcode = possible; barcode = barcode.Remove(0, 1); barcode = barcode.Replace("\r", ""); //launch delegate if (OnBarcodeRead != null) { OnBarcodeRead.Invoke(barcode); } } //delete timers timestarted = DateTime.MinValue; InputTimeout.Dispose(); InputTimeout = null; possible = null; }
public TelaCodigoBarras(string op) { /*MobileBarcodeScanningOptions optionCode = this.optionCode;*/ InitializeComponent(); // Configuração da Leitura this.optionsEan8 = new MobileBarcodeScanningOptions { AutoRotate = false, UseFrontCameraIfAvailable = false, TryHarder = true, // Todos os formatos que códigos que serão aceitos PossibleFormats = new List <ZXing.BarcodeFormat> { ZXing.BarcodeFormat.EAN_8 } }; this.optionsEan13 = new MobileBarcodeScanningOptions { AutoRotate = false, UseFrontCameraIfAvailable = false, TryHarder = true, // Todos os formatos que códigos que serão aceitos PossibleFormats = new List <ZXing.BarcodeFormat> { ZXing.BarcodeFormat.EAN_13 } }; this.optionsEan14 = new MobileBarcodeScanningOptions { AutoRotate = false, UseFrontCameraIfAvailable = false, TryHarder = true, // Todos os formatos que códigos que serão aceitos PossibleFormats = new List <ZXing.BarcodeFormat> { ZXing.BarcodeFormat.EAN_8, ZXing.BarcodeFormat.CODE_128 } }; this.optionsQrCode = new MobileBarcodeScanningOptions { AutoRotate = false, UseFrontCameraIfAvailable = false, TryHarder = true, // Todos os formatos que códigos que serão aceitos PossibleFormats = new List <ZXing.BarcodeFormat> { ZXing.BarcodeFormat.QR_CODE } }; switch (op) { case "EAN_8": barCodeButton = op; zXing = new ZXingScannerView { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, Options = optionsEan8 }; break; case "EAN_13": barCodeButton = op; zXing = new ZXingScannerView { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, Options = optionsEan13 }; break; case "EAN_14": barCodeButton = op; zXing = new ZXingScannerView { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, Options = optionsEan14 }; break; case "QR_CODE": barCodeButton = op; zXing = new ZXingScannerView { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, Options = optionsQrCode }; break; } zXing.OnScanResult += (result) => Device.BeginInvokeOnMainThread(async() => { // Finaliza a leitura zXing.IsAnalyzing = false; barCodeString = result.Text; // Pega as informações do código lido BarcodeRead?.Invoke(this, barCodeButton + ": " + barCodeString); await Navigation.PopModalAsync(); }); overlay = new ZXingDefaultOverlay { TopText = "Aproxime do código para leitura", BottomText = "O código será lido automaticamente", ShowFlashButton = zXing.HasTorch }; var grid = new Grid { VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.FillAndExpand }; grid.Children.Add(zXing); grid.Children.Add(overlay); Content = grid; }