Beispiel #1
0
        //public async Task CheckCameraPermission()
        //{
        //    var status = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Camera);

        //    if (status != PermissionStatus.Granted)
        //    {
        //        await CrossPermissions.Current.ShouldShowRequestPermissionRationaleAsync(Permission.Camera);
        //        var results = await CrossPermissions.Current.RequestPermissionsAsync(Permission.Camera);
        //    }
        //}

        //public async Task CheckPermissions()
        //{
        //    //await CheckReadDevicePermission();

        //    await CheckCameraPermission();

        //    //await CheckStoragePermission();
        //}

        protected override void OnAppearing()
        {
            base.OnAppearing();

            //CheckPermissions().GetAwaiter();

            zxing.IsScanning = true;

            zxing.OnScanResult += (result) =>
                                  Device.BeginInvokeOnMainThread(async() =>
            {
                // Para a analise
                zxing.IsAnalyzing = false;

                zxing.IsScanning = true;

                BarcodeReaded?.Invoke(this, result.Text);

                await DisplayAlert("Scanned Barcode", result.Text, "OK");
            });
        }
Beispiel #2
0
        public ZXingView()
        {
            InitializeComponent();

            //Opções de Leitura
            var options = new ZXing.Mobile.MobileBarcodeScanningOptions
            {
                AutoRotate = false,
                UseFrontCameraIfAvailable = false,
                TryHarder       = true,
                PossibleFormats = new List <ZXing.BarcodeFormat>
                {
                    ZXing.BarcodeFormat.QR_CODE//ZXing.BarcodeFormat.EAN_8, ZXing.BarcodeFormat.EAN_13
                }
            };

            zxing = new ZXing.Net.Mobile.Forms.ZXingScannerView
            {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.FillAndExpand,
                Options           = options
            };

            zxing.OnScanResult += (result) =>
                                  Device.BeginInvokeOnMainThread(async() =>
            {
                // Para a analise
                zxing.IsAnalyzing = false;

                BarcodeReaded?.Invoke(this, result.Text);

                await Navigation.PopModalAsync();
            });


            overlay = new ZXingDefaultOverlay
            {
                TopText         = "Escolhe um QRCode para leitura",
                BottomText      = "O Código sera lido automaticamente",
                ShowFlashButton = zxing.HasTorch, //Lanterna
            };

            overlay.FlashButtonClicked += (sender, e) =>
            {
                zxing.IsTorchOn = !zxing.IsTorchOn;
            };

            var abort = new Button
            {
                Text            = "Cancelar",
                VerticalOptions = LayoutOptions.End,
                TextColor       = Color.FromHex("#FFF"),
                BackgroundColor = Color.FromHex("#4F51FF")
            };

            switch (Device.RuntimePlatform)
            {
            case Device.iOS:
                abort.HeightRequest = 40;
                break;

            case Device.Android:
                abort.HeightRequest = 50;
                break;
            }

            abort.Clicked += (object s, EventArgs e) =>
            {
                zxing.IsScanning = false;

                Device.BeginInvokeOnMainThread(async() =>
                {
                    await Navigation.PopModalAsync();
                });
            };

            var grid = new Grid
            {
                VerticalOptions   = LayoutOptions.FillAndExpand,
                HorizontalOptions = LayoutOptions.FillAndExpand,
            };

            grid.Children.Add(zxing);
            grid.Children.Add(overlay);
            grid.Children.Add(abort);

            Content = grid;
        }
        public BarcodeScanner()
        {
            InitializeComponent();
            GlobalVariables._codigoBarras = null;

            var options = new MobileBarcodeScanningOptions
            {
                AutoRotate = false,
                UseFrontCameraIfAvailable = false,
                TryHarder = true,
                //PossibleFormats = new List<ZXing.BarcodeFormat>
                //{
                //    ZXing.BarcodeFormat.EAN_8, ZXing.BarcodeFormat.EAN_13,
                //    ZXing.BarcodeFormat.CODE_39,ZXing.BarcodeFormat.All_1D
                //}
            };

            zxing = new ZXingScannerView
            {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.FillAndExpand,
                Options           = options
            };

            zxing.OnScanResult += (result) =>
                                  Device.BeginInvokeOnMainThread(async() =>
            {
                // Stop analysis until we navigate away so we don't keep reading barcodes
                zxing.IsAnalyzing = false;

                BarcodeReaded?.Invoke(this, result.Text);

                // Navigate away
                await Navigation.PopAsync();
                // Código de barras leído. Envía Menssage a MainPage
                MessagingCenter.Send <Views.BarcodeScanner, string>(this, "BarcodeRead", result.Text);


                //if (result.Text != null)
                //{
                //    GlobalVariables._codigoBarras = result.Text;
                //    // await Navigation.PushAsync(new Views.ArticusPage(result.Text, null));
                //}
            });

            overlay = new ZXingDefaultOverlay
            {
                TopText         = "Sostenga su teléfono sobre el código de barras",
                BottomText      = "El código se escaneará automaticamente",
                ShowFlashButton = true,
                //ShowFlashButton = zxing.HasTorch,
            };

            overlay.FlashButtonClicked += (sender, e) =>
            {
                zxing.IsTorchOn = !zxing.IsTorchOn;
            };

            var abort = new Button
            {
                Text            = "Cancelar",
                VerticalOptions = LayoutOptions.End,
                TextColor       = Color.FromHex("#FFF"),
                BackgroundColor = Color.FromHex("#4F51FF")
            };

            switch (Device.RuntimePlatform)
            {
            case Device.iOS:
                abort.HeightRequest = 40;
                break;

            case Device.Android:
                abort.HeightRequest = 50;
                break;
            }

            abort.Clicked += (object s, EventArgs e) =>
            {
                zxing.IsScanning = false;

                Device.BeginInvokeOnMainThread(async() =>
                {
                    await Navigation.PopAsync();
                });
            };

            var grid = new Grid
            {
                VerticalOptions   = LayoutOptions.FillAndExpand,
                HorizontalOptions = LayoutOptions.FillAndExpand,
            };

            grid.Children.Add(zxing);
            grid.Children.Add(overlay);
            grid.Children.Add(abort);

            // The root page of your application
            Content = grid;
        }