public ZXingScannerPage (MobileBarcodeScanningOptions options = null, View customOverlay = null) : base ()
        {
            zxing = new ZXingScannerView
            {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions = LayoutOptions.FillAndExpand,
                Options = options
            };

            zxing.OnScanResult += (result) => {
                var eh = this.OnScanResult;
                if (eh != null)
                    eh(result);
                    //Device.BeginInvokeOnMainThread (() => eh (result));
            };

            if (customOverlay == null) {
                defaultOverlay = new ZXingDefaultOverlay {
                    TopText = "Hold your phone up to the barcode",
                    BottomText = "Scanning will happen automatically",
                    ShowFlashButton = zxing.HasTorch,
                };
                defaultOverlay.FlashButtonClicked += (sender, e) => {
                    zxing.IsTorchOn = !zxing.IsTorchOn;
                };
                Overlay = defaultOverlay;
            } else {
                Overlay = customOverlay;
            }

            var grid = new Grid
            {
                VerticalOptions = LayoutOptions.FillAndExpand,
                HorizontalOptions = LayoutOptions.FillAndExpand,
            };
            grid.Children.Add(zxing);
            grid.Children.Add(Overlay);

            // The root page of your application
            Content = grid;
        }
        public ZXingScannerPage (MobileBarcodeScanningOptions options = null, View customOverlay = null) : base ()
        {
            zxing = new ZXingScannerView
            {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions = LayoutOptions.FillAndExpand,
                Options = options,
                AutomationId = "zxingScannerView"
            };

            zxing.SetBinding( ZXingScannerView.IsTorchOnProperty, new Binding( nameof( IsTorchOn ) ) );
            zxing.SetBinding( ZXingScannerView.IsAnalyzingProperty, new Binding( nameof( IsAnalyzing ) ) );
            zxing.SetBinding( ZXingScannerView.IsScanningProperty, new Binding( nameof( IsScanning ) ) );
            zxing.SetBinding( ZXingScannerView.HasTorchProperty, new Binding( nameof( HasTorch ) ) );
            zxing.SetBinding( ZXingScannerView.ResultProperty, new Binding( nameof( Result ) ) );

            zxing.OnScanResult += (result) => {
                this.OnScanResult?.Invoke( result );
                //Device.BeginInvokeOnMainThread (() => eh (result));
            };

            if (customOverlay == null) {
                defaultOverlay = new ZXingDefaultOverlay () { AutomationId = "zxingDefaultOverlay" };

                defaultOverlay.SetBinding( ZXingDefaultOverlay.TopTextProperty, new Binding( nameof( DefaultOverlayTopText ) ) );
                defaultOverlay.SetBinding( ZXingDefaultOverlay.BottomTextProperty, new Binding( nameof( DefaultOverlayBottomText ) ) );
                defaultOverlay.SetBinding( ZXingDefaultOverlay.ShowFlashButtonProperty, new Binding( nameof( DefaultOverlayShowFlashButton ) ) );

                DefaultOverlayTopText = "Hold your phone up to the barcode";
                DefaultOverlayBottomText = "Scanning will happen automatically";
                DefaultOverlayShowFlashButton = HasTorch;

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

                Overlay = defaultOverlay;
            } else {
                Overlay = customOverlay;
            }

            var grid = new Grid
            {
                VerticalOptions = LayoutOptions.FillAndExpand,
                HorizontalOptions = LayoutOptions.FillAndExpand,
            };
            grid.Children.Add(zxing);
            grid.Children.Add(Overlay);

            // The root page of your application
            Content = grid;
        }
 private void ZXingDefaultOverlay_FlashButtonClicked(object sender, System.EventArgs e)
 {
     ZXingScannerView.ToggleTorch();
 }
        public StockScan()
        {
            InitializeComponent();

            zxing = new ZXingScannerView
            {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.FillAndExpand,
                AutomationId      = "zxingScannerView",
            };
            zxing.OnScanResult += (result) =>
                                  Device.BeginInvokeOnMainThread(async() =>
            {
                // Stop analysis until we navigate away so we don't keep reading barcodes
                zxing.IsAnalyzing = false;

                // Show an alert
                await DisplayAlert("Scanned Barcode", result.Text, "OK");
            });

            overlay = new ZXingDefaultOverlay
            {
                TopText         = "Hold your phone up to the barcode",
                BottomText      = "Scanning will happen automatically",
                ShowFlashButton = zxing.HasTorch,
                AutomationId    = "zxingDefaultOverlay",
            };
            overlay.FlashButtonClicked += (sender, e) =>
            {
                zxing.IsTorchOn = !zxing.IsTorchOn;
            };

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

            var stopButton = new Button
            {
                WidthRequest      = 100,
                HeightRequest     = 50,
                HorizontalOptions = LayoutOptions.Start,
                VerticalOptions   = LayoutOptions.End,
                Text    = "disable",
                Command = new Command(() => zxing.IsScanning = false)
            };

            var cancelButton = new Button
            {
                WidthRequest      = 100,
                HeightRequest     = 50,
                HorizontalOptions = LayoutOptions.Center,
                VerticalOptions   = LayoutOptions.End,
                Text    = "cancel",
                Command = new Command(async() => await Navigation.PopAsync())
            };

            var startButton = new Button
            {
                WidthRequest      = 100,
                HeightRequest     = 50,
                HorizontalOptions = LayoutOptions.End,
                VerticalOptions   = LayoutOptions.End,
                Text    = "enable",
                Command = new Command(() => zxing.IsScanning = true)
            };

            grid.Children.Add(zxing);
            grid.Children.Add(overlay);
            grid.Children.Add(startButton);
            grid.Children.Add(cancelButton);
            grid.Children.Add(stopButton);

            // The root page of your application
            Content = grid;
        }
Exemple #5
0
        private void InitializeComponent()
        {
            ZXReader = new ZXingScannerView
            {
                AutomationId     = "ZXingScannerView",
                InputTransparent = true,
                IsAnalyzing      = ViewModel.IsAnalyzing,
                IsScanning       = ViewModel.IsScanning,
                IsTorchOn        = true
            };
            ZXOverlay = new ZXingDefaultOverlay
            {
                AutomationId    = "ZXingDefaultOverlay",
                BackgroundColor = Color.Transparent,
                BottomText      = "Aponte para o Qr Code",
                TopText         = "Registrar ponto"
            };
            GrdLeitor = new Grid
            {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.FillAndExpand,
                Children          = { ZXReader, ZXOverlay }
            };

            LblMensager = new Label
            {
                HorizontalOptions = LayoutOptions.CenterAndExpand,
                VerticalOptions   = LayoutOptions.Start,
                Text = "kiko"
            };
            ImageLoad = new FFImageLoading.Svg.Forms.SvgCachedImage
            {
                Source            = "loading.gif",
                HorizontalOptions = LayoutOptions.CenterAndExpand,
                VerticalOptions   = LayoutOptions.Start,
                Scale             = 3
            };
            BtnTentarNovamente = new Button
            {
                HorizontalOptions = LayoutOptions.Center,
                VerticalOptions   = LayoutOptions.Start,
                BackgroundColor   = Color.Transparent,
                IsVisible         = false,
                Text = "Tentar Novamente"
            };
            StlLoader = new StackLayout
            {
                IsVisible         = false,
                VerticalOptions   = LayoutOptions.StartAndExpand,
                HorizontalOptions = LayoutOptions.CenterAndExpand,
                Children          =
                {
                    LblMensager,
                    new AbsoluteLayout
                    {
                        VerticalOptions   = LayoutOptions.CenterAndExpand,
                        HorizontalOptions = LayoutOptions.CenterAndExpand,
                        Children          = { ImageLoad }
                    },
                    BtnTentarNovamente
                }
            };

            StlLeitor = new StackLayout()
            {
                BackgroundColor = Color.Transparent,
                Children        = { GrdLeitor, StlLoader }
            };
        }
        public ScanPage(Action <string> callback)
            : base(updateActivity: false, requireAuth: false)
        {
            _zxing = new ZXingScannerView
            {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.FillAndExpand,
                AutomationId      = "zxingScannerView",
                Options           = new ZXing.Mobile.MobileBarcodeScanningOptions
                {
                    UseNativeScanning = true,
                    PossibleFormats   = new List <ZXing.BarcodeFormat> {
                        ZXing.BarcodeFormat.QR_CODE
                    },
                    AutoRotate = false
                }
            };

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

                Uri uri;
                if (!string.IsNullOrWhiteSpace(result.Text) && Uri.TryCreate(result.Text, UriKind.Absolute, out uri) &&
                    !string.IsNullOrWhiteSpace(uri.Query))
                {
                    var queryParts = uri.Query.Substring(1).ToLowerInvariant().Split('&');
                    foreach (var part in queryParts)
                    {
                        if (part.StartsWith("secret="))
                        {
                            callback(part.Substring(7)?.ToUpperInvariant());
                            return;
                        }
                    }
                }

                callback(null);
            };

            _overlay = new OverlayGrid
            {
                AutomationId = "zxingDefaultOverlay"
            };

            _overlay.TopLabel.Text    = AppResources.CameraInstructionTop;
            _overlay.BottomLabel.Text = AppResources.CameraInstructionBottom;

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

            if (Device.RuntimePlatform == Device.iOS || Device.RuntimePlatform == Device.UWP)
            {
                ToolbarItems.Add(new DismissModalToolBarItem(this, AppResources.Close));
            }

            Title   = AppResources.ScanQrTitle;
            Content = grid;
        }
Exemple #7
0
 public MyResultHandler(Barcode barcode, ZXingScannerView scannerView)
 {
     this.barcode     = barcode;
     this.scannerView = scannerView;
 }
Exemple #8
0
        public CustomScanPage() : base()
        {
            result = null;

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

            SetScanOptions();

            zxing.OnScanResult += Zxing_OnScanResult;

            var torch = new Button
            {
                Text = Language.GetText("Torch"),
                HorizontalOptions = LayoutOptions.FillAndExpand,
                TextColor         = Color.White
            };

            torch.Clicked += delegate {
                zxing.ToggleTorch();
            };

            var abort = new Button
            {
                Text = Language.GetText("Cancel"),
                HorizontalOptions = LayoutOptions.FillAndExpand,
                TextColor         = Color.White
            };

            abort.Clicked += delegate {
                zxing.RaiseScanResult(null);
            };

            var customOverlayTop = new StackLayout
            {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.FillAndExpand,
                BackgroundColor   = Color.Black,
                Opacity           = 0.7,
                Children          =
                {
                    new Label
                    {
                        HeightRequest = 20,
                    },
                    new Label
                    {
                        Text = Language.GetText("AppTitle"),
                        HorizontalTextAlignment = TextAlignment.Center,
                        HorizontalOptions       = LayoutOptions.CenterAndExpand,
                        TextColor = Color.White
                    },
                    new Label
                    {
                        Text = "Scan QR code...",
                        HorizontalTextAlignment = TextAlignment.Center,
                        HorizontalOptions       = LayoutOptions.CenterAndExpand,
                        TextColor = Color.White
                    }
                }
            };

            var customOverlayCenter = new Grid
            {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.FillAndExpand,
                Opacity           = 0.6,
                Children          =
                {
                    new Image
                    {
                        VerticalOptions   = LayoutOptions.CenterAndExpand,
                        HorizontalOptions = LayoutOptions.Center,
                        Source            = "scanl1.png",
                        Aspect            = Aspect.AspectFit
                    },
                    new Image
                    {
                        VerticalOptions   = LayoutOptions.Center,
                        HorizontalOptions = LayoutOptions.CenterAndExpand,
                        Source            = "scanl2.png",
                        Aspect            = Aspect.AspectFill
                    }
                }
            };

            var customOverlayBottom = new StackLayout
            {
                Orientation       = StackOrientation.Horizontal,
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.FillAndExpand,
                BackgroundColor   = Color.Black,
                Opacity           = 0.7,
                Padding           = new Thickness(0, 10, 0, 10),
            };

            customOverlayBottom.Children.Add(abort);
            //if(zxing.HasTorch) customOverlayBottom.Children.Add(torch); BUG on library, this returns always FALSE
            customOverlayBottom.Children.Add(torch);

            var customOverlay = new Grid
            {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.FillAndExpand,
                RowDefinitions    = new RowDefinitionCollection
                {
                    new RowDefinition {
                        Height = new GridLength(1, GridUnitType.Star)
                    },
                    new RowDefinition {
                        Height = new GridLength(2, GridUnitType.Star)
                    },
                    new RowDefinition {
                        Height = new GridLength(1, GridUnitType.Star)
                    }
                },
                Children =
                {
                    customOverlayTop,
                    customOverlayCenter,
                    customOverlayBottom
                }
            };

            Grid.SetRow(customOverlayTop, 0);
            Grid.SetRow(customOverlayCenter, 1);
            Grid.SetRow(customOverlayBottom, 2);


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

            grid.Children.Add(zxing);
            grid.Children.Add(customOverlay);

            // The root page of your application
            Content = grid;
        }
Exemple #9
0
        public QRScanPage()
        {
            InitializeComponent();
            Padding = Device.OnPlatform(new Thickness(0, 20, 0, 0), new Thickness(), new Thickness());

            zxing = new ZXingScannerView
            {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.FillAndExpand
            };
            zxing.OnScanResult += (result) =>
                                  Device.BeginInvokeOnMainThread(async() =>
            {
                // Stop analysis until we navigate away so we don't keep reading barcodes
                zxing.IsAnalyzing = false;
                zxing.IsScanning  = false;
                // Store result to db
                string name = AddToDB(result.Text);
                var answer  = await DisplayAlert("Message", name + " Scanned!", "Done", "Export");
                // Export
                if (!answer)
                {
                    // export data to contacts
                    IAddContactsInfo addContacts = DependencyService.Get <IAddContactsInfo>();

                    bool exResult = addContacts.AddContacts(qc);

                    if (exResult)
                    {
                        await DisplayAlert("Confirm", "The contact information has been sucessfully exported", "OK");
                    }
                    else
                    {
                        await DisplayAlert("ERROR", "Exporting Fail", "OK");
                    }
                }
                // Navigate away
                await Navigation.PopModalAsync();
            });

            overlay = new ZXingDefaultOverlay
            {
                TopText         = "Hold your phone up to the barcode",
                BottomText      = "Scanning will happen automatically",
                ShowFlashButton = false
            };

            var grid = new Grid();

            grid.RowDefinitions.Add(new RowDefinition {
                Height = new GridLength(1, GridUnitType.Star)
            });
            grid.RowDefinitions.Add(new RowDefinition {
                Height = 50
            });
            Button cancelBtn = new Button
            {
                Text = "Cancel",
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.FillAndExpand
            };

            cancelBtn.Clicked += OnCancelBtnClicked;

            grid.Children.Add(zxing, 0, 0);
            grid.Children.Add(overlay, 0, 0);
            grid.Children.Add(cancelBtn, 0, 1);

            // The root page of your application
            Content = grid;
        }
        public Scan() : base()
        {
            zxing = new ZXingScannerView
            {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.FillAndExpand
            };

            zxing.OnScanResult += (result) =>
            {
                while (scanTries <= 5)
                {
                    if (ScanController.ProcessResult(result.Text))
                    {
                        Debug.WriteLine("\nScans Succeed...\n");
                        break;
                    }
                    else
                    {
                        Debug.WriteLine("\nScanfailded...\n");
                        scanTries       = (scanTries + 1);
                        overlay.TopText = "Poging: " + scanTries;
                    }
                }

                if (scanTries <= 5)
                {
                    Device.BeginInvokeOnMainThread(async() =>
                    {
                        await DisplayAlert("Succes~!", "Je account is succesvol gekoppeld", "Begrepen.");
                    });
                }
                else
                {
                    Device.BeginInvokeOnMainThread(async() =>
                    {
                        await DisplayAlert("Fout~!", "Je account kan niet worden gekoppeld, controleer je internetverbinding of probeer het later opnieuw.", "Begrepen.");
                    });
                }
                zxing.IsScanning     = false;
                scanTries            = 0;
                App.Current.MainPage = new NavigationPage(new NavMaster());
            };
            overlay = new ZXingDefaultOverlay
            {
                TopText         = "Poging: " + scanTries,
                BottomText      = "Even geduld a.u.b.",
                ShowFlashButton = zxing.HasTorch,
            };
            overlay.FlashButtonClicked += (sender, e) => {
                zxing.IsTorchOn = !zxing.IsTorchOn;
            };
            var grid = new Grid
            {
                VerticalOptions   = LayoutOptions.FillAndExpand,
                HorizontalOptions = LayoutOptions.FillAndExpand,
            };

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

            Content = grid;
        }
        public CustomScanPage() : base()
        {
            listview = new ListView
            {
                HorizontalOptions = LayoutOptions.Center,
                VerticalOptions   = LayoutOptions.CenterAndExpand,
                AutomationId      = "listview",
            };
            label = new Label
            {
                HorizontalOptions = LayoutOptions.Center,
                VerticalOptions   = LayoutOptions.Center,
                AutomationId      = "label",
                TextColor         = Color.White,
                FontSize          = 40
            };
            ZXing.Mobile.MobileBarcodeScanningOptions scanningOptions = new ZXing.Mobile.MobileBarcodeScanningOptions {
                DelayBetweenContinuousScans = 2000
            };
            zxing = new ZXingScannerView
            {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.Start,
                Options           = scanningOptions
            };
            zxing.OnScanResult += (result) =>
                                  Device.BeginInvokeOnMainThread(() => {
                //zxing.IsAnalyzing = false;
                //await DisplayAlert("扫描条码", result.Text, "OK");
                HandleScanResult(result);
                // Navigate away
                //await Navigation.PopAsync();
            });

            overlay = new ZXingOverlay
            {
                //TopText = "请对准二维码",
                BottomText      = "阴暗天气建议打开闪光灯",
                ShowFlashButton = true,
                ButtonText      = "开灯"
            };
            overlay.FlashButtonClicked += (sender, e) =>
            {
                try
                {
                    if (!zxing.IsTorchOn)
                    {
                        sender.Text = "关灯";
                        //CrossLampState = true;
                        zxing.IsTorchOn = true;
                    }
                    else
                    {
                        sender.Text     = "开灯";
                        zxing.IsTorchOn = false;
                    }
                }
                catch (Exception)
                {
                }
            };
            var grid = new Grid
            {
                VerticalOptions   = LayoutOptions.FillAndExpand,
                HorizontalOptions = LayoutOptions.FillAndExpand,
            };

            grid.Children.Add(zxing, 0, 0);
            overlay.Children.Add(label, 0, 2);
            grid.Children.Add(overlay);


            // The root page of your application
            Content = grid;
        }
Exemple #12
0
        public ComingIn(string Lat, string Long, string DeviceId, string LocAddress, string distanceFromOrigin) : base()
        {
            this.Latitude           = Lat;
            this.Longitude          = Long;
            this.UniqueDeviceID     = DeviceId;
            this.LocationAddress    = LocAddress;
            this.distanceFromOrigin = distanceFromOrigin;

            BackgroundColor = ColorResources.PageBackgroundColor;

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

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

                Device.BeginInvokeOnMainThread(async() =>
                {
                    if (result.Text == "nWorks Technologies (India) Pvt. Ltd., 206 Garden Plaza, Rahatani, Pune, Maharashtra, 411 017, INDIA")
                    {
                        comingIn_goingOut obj = new comingIn_goingOut();
                        try
                        { //get geolocation
                            obj.empId              = ColorResources.LIVE_USER_ID;
                            obj.qrValue            = result.Text;
                            obj.DeviceID           = this.UniqueDeviceID;
                            obj.latitude           = this.Latitude;
                            obj.longitude          = this.Longitude;
                            obj.Location           = this.LocationAddress;
                            obj.distanceFromOrigin = this.distanceFromOrigin;

                            await this.Navigation.PopAsync();
                            zxing.IsScanning             = false;
                            var json                     = JsonConvert.SerializeObject(obj);
                            var content                  = new StringContent(json, Encoding.UTF8, "application/json");
                            HttpClient Client            = new HttpClient();
                            HttpResponseMessage response = null;
                            response                     = await Client.PostAsync(ColorResources.baseUrl + "comingIn", content);
                            if (response.IsSuccessStatusCode)
                            {
                                var responseContent = await response.Content.ReadAsStringAsync();
                                var res             = JsonConvert.DeserializeObject <string>(responseContent);
                                await DisplayAlert(" nWorksLeaveApp", res.ToString(), "OK");
                            }
                        }
                        catch (Exception exc)
                        {
                            //							await DisplayAlert(" nWorksLeaveApp",exc.ToString(),"OK");
                            Debug.WriteLine(exc.ToString());
                        }
                    }
                    else
                    {
                        await DisplayAlert(" nWorksLeaveApp", "Invalid QR Code!", "OK");
                    }
                });
            };


            overlay = new ZXingDefaultOverlay
            {
                TopText         = "Hold your phone up to the barcode",
                BottomText      = "Scanning will happen automatically",
                ShowFlashButton = zxing.HasTorch,
            };

            overlay.FlashButtonClicked += (sender, e) =>
            {
                zxing.IsTorchOn = !zxing.IsTorchOn;
            };
            var grid = new Grid
            {
                VerticalOptions   = LayoutOptions.FillAndExpand,
                HorizontalOptions = LayoutOptions.FillAndExpand,
                HeightRequest     = 500,
            };

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


            Content = new StackLayout
            {
                Padding         = new Thickness(0, 15, 0, 10),
                VerticalOptions = LayoutOptions.Center,
                Children        =
                {
                    new Label {
                        Text              = "I am coming...",
                        TextColor         = Color.Red,
                        FontSize          = 25,
                        VerticalOptions   = LayoutOptions.StartAndExpand,
                        HorizontalOptions = LayoutOptions.Center,
                    },
                    grid
                }
            };
        }
        public CustomScanPage(
            //  INavigationService navigationService
            ) : base()
        {
            _clip      = Xamarin.Forms.DependencyService.Get <IClipBoardService>();;
            webBrowser = Xamarin.Forms.DependencyService.Get <IWebBrowserService>();
            InitializeComponent();
            SizeChanged += (t, w) =>
            {
                var MIN_WIDTH  = 160;
                var MIN_HEIGHT = 40;
                var _width     = Width * 0.5;
                var _height    = Height * 0.2;
                if (zxing != null)
                {
                    zxing.WidthRequest  = _width < MIN_WIDTH ? MIN_WIDTH : _width;
                    zxing.HeightRequest = _height < MIN_HEIGHT ? MIN_HEIGHT : _height;
                    return;
                }

                zxing = new ZXingScannerView
                {
                    HorizontalOptions = LayoutOptions.CenterAndExpand,
                    VerticalOptions   = LayoutOptions.CenterAndExpand,
                    WidthRequest      = _width,
                    HeightRequest     = _height
                };
                zxing.OnScanResult += (result) => {
                    // 前回と同じ読み込みなら何もしない
                    if (result.Text == prevSearchText)
                    {
                        return;
                    }
                    prevSearchText = result.Text;

                    Device.BeginInvokeOnMainThread(() =>
                    {
                        // Stop analysis until we navigate away so we don't keep reading barcodes
                        zxing.IsAnalyzing = false;
                        // Show an alert
                        // await DisplayAlert("クリップボードにコピーしました", result.Text, "OK");
                        _clip.SetTextToClipBoard(result.Text);
                        // ラベルのテキストを更新
                        resultLabl.Text = "クリップボードに【" + result.Text + "】をコピーしました。";
                        // await navigationService.GoBackAsync();
                        OpenBrawser(result.Text);
                    });
                };
                var grid = new Grid
                {
                    VerticalOptions   = LayoutOptions.FillAndExpand,
                    HorizontalOptions = LayoutOptions.FillAndExpand,
                };
                grid.Children.Add(zxing);
                // grid.Children.Add(overlay);

                // The root page of your application
                MainBoard.Children.Add(grid);
                MainBoard.Children.Add(resultLabl);
            };
        }
Exemple #14
0
        public SaoPage() : base()
        {
            InitializeComponent();

            zxing = new ZXingScannerView
            {
                Options = new ZXing.Mobile.MobileBarcodeScanningOptions()
                {
                    TryHarder = true
                },
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.FillAndExpand
            };

            zxing.OnScanResult += (result) =>
                                  Device.BeginInvokeOnMainThread(async() =>
            {
                zxing.IsAnalyzing = false;
                zxing.IsScanning  = false;

                try
                {
                    zxing.IsTorchOn = false;
                }
                catch (Exception)
                {
                }

                //await DisplayAlert("Scanned Barcode", result.Text, "OK");
                //连接地址则跳转
                if (ToolsClass.IsUrl(result.Text))
                {
                    var msg = new NavigationMessage()
                    {
                        Paremeter = result.Text
                    };
                    MessagingCenter.Send(msg, "AutoScanCode");
                    Navigation.RemovePage(this);
                    //await Navigation.PushAsync(new WebViewPage(result.Text));
                    return;
                }
                else
                {
                    await DisplayAlert("查询结果", "" + result.Text + "", "确定");
                    var msg = new NavigationMessage()
                    {
                        Paremeter = result.Text
                    };
                    MessagingCenter.Send(msg, "AutoScanCode");
                }

                await Navigation.PopAsync();
            });

            overlay = new MyZXingOverlay
            {
                TopText         = "请对准条码/二维码",
                BottomText      = "阴暗天气建议打开闪光灯",
                ShowFlashButton = true,
                ButtonText      = "开灯"
            };


            overlay.FlashButtonClicked += (sender, e) =>
            {
                try
                {
                    sender.BackgroundColor = Color.FromHex("7fadf7");
                    if (!zxing.IsTorchOn)
                    {
                        sender.Text     = "关灯";
                        CrossLampState  = true;
                        zxing.IsTorchOn = true;
                    }
                    else
                    {
                        sender.Text     = "开灯";
                        zxing.IsTorchOn = false;
                    }
                }
                catch (Exception)
                {
                }
            };
            var grid = new Grid
            {
                VerticalOptions   = LayoutOptions.FillAndExpand,
                HorizontalOptions = LayoutOptions.FillAndExpand,
            };

            grid.Children.Add(zxing);
            grid.Children.Add(overlay);
            Content = grid;
        }
        /// <summary>
        /// Views the did load.
        /// Contains code to create view on controller
        /// </summary>
        public override void ViewDidLoad()
        {
            // Loading view design
            loadingBg = new UIView(this.View.Frame)
            {
                BackgroundColor = UIColor.Black, AutoresizingMask = UIViewAutoresizing.FlexibleDimensions
            };

            // Activity indicator view design
            loadingView = new UIActivityIndicatorView(UIActivityIndicatorViewStyle.WhiteLarge)
            {
                AutoresizingMask = UIViewAutoresizing.FlexibleMargins
            };
            loadingView.Frame = new CGRect((this.View.Frame.Width - loadingView.Frame.Width) / 2,
                                           (this.View.Frame.Height - loadingView.Frame.Height) / 2,
                                           loadingView.Frame.Width,
                                           loadingView.Frame.Height);

            loadingBg.AddSubview(loadingView);
            View.AddSubview(loadingBg);
            loadingView.StartAnimating();

            // Parent view design which contains 2 subviews;
            // 1- Contact and button view
            // 2- Scanner view
            parentView = new UIView(new CGRect(0, 0, View.Frame.Width, View.Frame.Height));

            // Contact view design
            contactView = new UIView(new CGRect(0, 0, View.Frame.Width, View.Frame.Height / 4))
            {
                BackgroundColor = UIColor.White
            };

            txtContactNumber = new UITextField
            {
                Frame              = new CGRect(contactView.Frame.X + 20, (contactView.Frame.Height / 2) - 20, (contactView.Frame.Width - contactView.Frame.Width / 3), 40),
                BackgroundColor    = UIColor.White,
                AutocorrectionType = UITextAutocorrectionType.No,
                SpellCheckingType  = UITextSpellCheckingType.No,
                Placeholder        = "Contact number",
                BorderStyle        = UITextBorderStyle.RoundedRect
            };
            txtContactNumber.Layer.BorderWidth  = 0.5f;
            txtContactNumber.Layer.CornerRadius = 5;

            btnDone = new UIButton
            {
                Frame           = new CGRect(txtContactNumber.Frame.Width + 40, (contactView.Frame.Height / 2) - 20, 70, 40),
                BackgroundColor = UIColor.Blue
            };
            btnDone.SetTitle("Done", UIControlState.Normal);
            btnDone.Layer.BorderWidth  = 0.0f;
            btnDone.Layer.CornerRadius = 5;
            btnDone.TouchUpInside     += BtnDone_TouchUpInside;

            contactView.AddSubview(txtContactNumber);
            contactView.AddSubview(btnDone);

            // Scanner view design
            scannerView = new ZXingScannerView(new CGRect(0, contactView.Frame.Height, View.Frame.Width, View.Frame.Height - contactView.Frame.Height))
            {
                AutoresizingMask     = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight,
                UseCustomOverlayView = this.Scanner.UseCustomOverlay,
                CustomOverlayView    = this.Scanner.CustomOverlay,
                TopText          = this.Scanner.TopText,
                BottomText       = this.Scanner.BottomText,
                CancelButtonText = this.Scanner.CancelButtonText,
                FlashButtonText  = this.Scanner.FlashButtonText
            };

            scannerView.OnCancelButtonPressed += Cancel;

            parentView.AddSubview(contactView);
            parentView.AddSubview(scannerView);

            //this.View.AddSubview(scannerView);
            this.View.InsertSubviewBelow(parentView, loadingView);

            this.View.AutoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight;
        }
        public override void ViewDidLoad()
        {
            this.View.Frame = UIScreen.MainScreen.Bounds;
            this.View.AutoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight;

            _scannerView = new ZXingScannerView(View.Bounds);
            _scannerView.AutoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight;
            _scannerView.UseCustomOverlayView = false;

            View.AddSubview(_scannerView);
            View.AutoresizingMask = UIViewAutoresizing.FlexibleWidth;
        }
 public BarcodeScanProvider(INavigationService navigationService, ZXingScannerView scanPage)
 {
     this.navigationService = navigationService;
     this.scanPage          = scanPage;
     InitScanningPage();
 }
 public PartialScreenScanning()
 {
     // Get a reference to the Scanner so that we can manually assign events from the ViewModel
     InitializeComponent();
     ZXigQRScanner = _scanView;
 }
Exemple #19
0
//        ObservableCollection<RosterMember> members;
        public ScannerPage()
        {
            InitializeComponent();
            scannerView = new ZXingScannerView {
                HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.Center
            };
//            var mockStore = new MockDataStore();
            RosterMembersViewModel memberView = new RosterMembersViewModel();
            //            members = new ObservableCollection<RosterMember>();
            var stackLayout = new StackLayout {
                BackgroundColor = Color.LightGray, HeightRequest = 200
            };

            scannerView.OnScanResult += (result) =>
                                        Device.BeginInvokeOnMainThread(async() =>
            {
                scannerView.IsAnalyzing = false;
                // TODO invoke imis web service; send barcoded data and memeber data
                var member = await memberView.DataStore.GetItemAsync(result.Text);
                if (stackLayout.Children.Count > 0)
                {
                    stackLayout.Children.RemoveAt(0);
                }
                if (member != null)
                {
                    var memberStackLayout         = new StackLayout();
                    var memberStatusLabel         = new Label();
                    var memberNameLabel           = new Label();
                    var memberIdLabel             = new Label();
                    var memberAlertGrid           = new Grid();
                    memberAlertGrid.RowSpacing    = 1;
                    memberAlertGrid.ColumnSpacing = 1;
                    memberAlertGrid.ColumnDefinitions.Add(new ColumnDefinition {
                        Width = new GridLength(1, GridUnitType.Star)
                    });
                    memberAlertGrid.ColumnDefinitions.Add(new ColumnDefinition {
                        Width = new GridLength(1, GridUnitType.Star)
                    });
                    member.Status = SwitchStatus(member.Status);
                    await memberView.DataStore.UpdateItemAsync(member);
                    // ReSharper disable once UseStringInterpolation
                    memberStatusLabel.Text            = string.Format(@"{0} has been {1} at {2}", member.FullName, GetStatusText(member.Status), DateTime.Now.ToShortTimeString());
                    memberStatusLabel.BackgroundColor = Color.FromHex("#dff0d8");
                    memberNameLabel.Text            = member.FullName;
                    memberNameLabel.VerticalOptions = LayoutOptions.Center;
                    memberIdLabel.Text            = member.Id;
                    memberIdLabel.VerticalOptions = LayoutOptions.Center;

                    foreach (var memberAlert in member.MemberAlerts)
                    {
                        memberAlertGrid.RowDefinitions.Add(new RowDefinition {
                            Height = new GridLength(1, GridUnitType.Star)
                        });

                        var alertLabel      = new Label();
                        var alertTypeLabel  = new Label();
                        alertLabel.Text     = memberAlert.Description;
                        alertTypeLabel.Text = memberAlert.Type.ToString();
                        memberAlertGrid.Children.Add(alertTypeLabel, 0, member.MemberAlerts.IndexOf(memberAlert));
                        memberAlertGrid.Children.Add(alertLabel, 1, member.MemberAlerts.IndexOf(memberAlert));
                    }



                    var button             = new Button();
                    button.Text            = "Undo";
                    button.BackgroundColor = Color.FromHex("#e98300");
                    button.TextColor       = Color.White;
                    button.Clicked        += async delegate
                    {
                        if (stackLayout.Children.Count > 0)
                        {
                            stackLayout.Children.RemoveAt(0);
                        }
                        member.Status = SwitchStatus(member.Status);
                        await memberView.DataStore.UpdateItemAsync(member);
                        // ReSharper disable once UseStringInterpolation
                        memberStatusLabel.Text = string.Format(@"{0} has been {1} at {2}", member.FullName, GetStatusText(member.Status), DateTime.Now.ToShortTimeString());
                        stackLayout.Children.Add(memberStackLayout);
                    };

                    memberStackLayout.Children.Add(memberStatusLabel);
//                        memberStackLayout.Children.Add(memberNameLabel);
//                        memberStackLayout.Children.Add(memberIdLabel);
                    if (member.MemberAlerts.Count > 0)
                    {
                        memberStackLayout.Children.Add(memberAlertGrid);
                    }
                    memberStackLayout.Children.Add(button);
                    stackLayout.Children.Add(memberStackLayout);
                }
                else
                {
                    var memberStackLayout = new StackLayout();
                    var memberStatusLabel = new Label();
                    var memberNameField   = new Entry();
                    // ReSharper disable once UseStringInterpolation
                    memberStatusLabel.Text            = string.Format(@"Youth member not found {0}", result.Text);
                    memberStatusLabel.BackgroundColor = Color.FromHex("#FEEFB3");
                    var button             = new Button();
                    button.Text            = "Add";
                    button.BackgroundColor = Color.FromHex("#e98300");
                    button.TextColor       = Color.White;
                    button.Clicked        += async delegate
                    {
                        if (button.Text.Equals("Add"))
                        {
                            if (stackLayout.Children.Count > 0)
                            {
                                stackLayout.Children.RemoveAt(0);
                            }
                            var newMember      = new RosterMember();
                            newMember.Id       = result.Text;
                            newMember.FullName = string.IsNullOrEmpty(memberNameField.Text) ? memberNameField.Text : "new member";
                            newMember.Status   = CheckInStatus.CheckedIn;
                            await memberView.DataStore.AddItemAsync(newMember);
                            if (stackLayout.Children.Count > 0)
                            {
                                stackLayout.Children.RemoveAt(0);
                            }
                            // ReSharper disable once UseStringInterpolation
                            memberStatusLabel.Text = string.Format(@"{0} has been added and {1} at {2}", result.Text, newMember.Status, DateTime.Now.ToShortTimeString());
                            button.Text            = "Undo";
                        }
                        else if (button.Text.Equals("Undo"))
                        {
                            member = await memberView.DataStore.GetItemAsync(result.Text);
                            if (member != null)
                            {
                                member.Status = SwitchStatus(member.Status);

                                await memberView.DataStore.UpdateItemAsync(member);
                                // ReSharper disable once UseStringInterpolation
                                memberStatusLabel.Text = string.Format(@"{0} has been {1} at {2}", member.FullName, GetStatusText(member.Status), DateTime.Now.ToShortTimeString());
                            }
                        }
                        memberStackLayout = new StackLayout();
                        memberStackLayout.Children.Add(memberStatusLabel);
                        memberStackLayout.Children.Add(button);
                        stackLayout.Children.Add(memberStackLayout);
                    };
                    memberStackLayout.Children.Add(memberStatusLabel);
                    memberStackLayout.Children.Add(memberNameField);
                    memberStackLayout.Children.Add(button);
                    stackLayout.Children.Add(memberStackLayout);
                }

                await Task.Delay(3000);
                scannerView.IsAnalyzing = true;
            });

            scannerOverlay = new ZXingDefaultOverlay
            {
                TopText         = "Hold your phone over youth member code to check in",
                BottomText      = "Scanning will happen automatically",
                ShowFlashButton = scannerView.HasTorch,
            };
            scannerOverlay.Children.AddVertical(stackLayout);

            scannerOverlay.FlashButtonClicked += (sender, e) => {
                scannerView.IsTorchOn = !scannerView.IsTorchOn;
            };

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

            grid.Children.Add(scannerView);
            grid.Children.Add(scannerOverlay);

            // The root page of your application
            Content = grid;
        }
        private async void LoadLectorQR()
        {
            if (isLoadLectorQR)
            {
                return;
            }

            isLoadLectorQR = true;

            await MainViewModel.GetInstace().CollectViewModel.ShowDialog();

            bool statePermission = await Permissions.GetPermissions(Permission.Camera);

            if (statePermission)
            {
                try
                {
                    await Task.Delay(1000);

                    scanner = new ZXingScannerView
                    {
                        HorizontalOptions = LayoutOptions.FillAndExpand,
                        VerticalOptions   = LayoutOptions.FillAndExpand,
                        Options           = new MobileBarcodeScanningOptions()
                        {
                            PossibleFormats = new List <ZXing.BarcodeFormat>
                            {
                                ZXing.BarcodeFormat.QR_CODE,
                            },
                            DelayBetweenContinuousScans = 2000
                        },
                    };
                    scanner.OnScanResult += (result) =>
                    {
                        scanner.IsAnalyzing = false;
                        if (scanner.IsScanning)
                        {
                            scanner.AutoFocus();
                        }

                        Device.BeginInvokeOnMainThread(async() =>
                        {
                            await MainViewModel.GetInstace().CollectViewModel.ProcessTransaction(result.Text);
                            scanner.IsAnalyzing = true;
                        });
                    };

                    MainPageContainer.Children.Add(scanner);

                    scanner.IsEnabled   = true;
                    scanner.IsAnalyzing = true;
                    scanner.IsScanning  = true;
                }
                catch (Exception ex)
                {
                    ServiceBackgroundWorker.GetInstance().SendExceptionWorker(ex.ToString());
                }
            }
            isFirstTimeOnLoad = false;
            await MainViewModel.GetInstace().CollectViewModel.CloseDialog();

            isLoadLectorQR = false;
        }
Exemple #21
0
        public TestScan() : base()
        {
            InitializeComponent();

            //var secureStorage = DependencyService.Get<IPlugInProvider>().SecureStorage;

            activitySpinner = new ActivityIndicator();


            scanner = new ZXingScannerView();
            overlay = new ZXingDefaultOverlay();

            scanner.IsVisible = false;
            miaoCodeEntry     = new Entry();

            miaoCodeEntry.VerticalOptions         = LayoutOptions.Center;
            miaoCodeEntry.HorizontalOptions       = LayoutOptions.FillAndExpand;
            miaoCodeEntry.HorizontalTextAlignment = TextAlignment.Center;
            miaoCodeEntry.IsEnabled = false;
            //miaoCodeEntry.MaxLength = 13;
            miaoCodeEntry.Placeholder = "Scan or type in MIAO ID";
            miaoCodeEntry.Keyboard    = Keyboard.Telephone;
            miaoCodeEntry.FontSize    = Device.GetNamedSize(NamedSize.Large, typeof(Entry));

            mainGrid.Children.Add(miaoCodeEntry, 0, 0);


            mobileInfo = new Label
            {
                Text = "No devices",
                HorizontalTextAlignment = TextAlignment.Center,
                VerticalTextAlignment   = TextAlignment.Center,
                VerticalOptions         = LayoutOptions.CenterAndExpand,
                FontSize = Device.GetNamedSize(NamedSize.Large, typeof(Entry))
            };
            testView = new ListView();
            //mainGrid.Children.Add(testView, 0, 2);

            //mainGrid.Children.Add(mobileInfo, 0, 2);



            if (!string.IsNullOrEmpty(miaoCodeEntry.Text))
            {
                UIDeviceSize = miaoCodeEntry.Text.Length;
            }
            else
            {
                UIDeviceSize = 0;
            }

            miaoCodeEntry.TextChanged += (s, e) =>
            {
                if (miaoCodeEntry.Text.Length < UIDeviceSize)
                {
                    System.Diagnostics.Debug.WriteLine("Reel " + miaoCodeEntry.Text.Length + " Other " + UIDeviceSize);
                }
                else
                {
                    if (miaoCodeEntry.Text.Length == 3)
                    {
                        miaoCodeEntry.Text += "-";
                    }
                    if (miaoCodeEntry.Text.Length == 6)
                    {
                        miaoCodeEntry.Text += "-";
                    }
                    if (miaoCodeEntry.Text.Length == 10)
                    {
                        miaoCodeEntry.Text += "-";
                    }
                }


                UIDeviceSize = miaoCodeEntry.Text.Length;
            };
        }
Exemple #22
0
        public PageScan1() : base()
        {
            zxing = new ZXingScannerView
            {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.FillAndExpand,
            };



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

                // Show an alert
                await DisplayAlert("Scanned Barcode", result.Text, "OK");
                Application.Current.MainPage = new NavigationPage(new PageX());
                if (await DisplayAlert("", "Do you want to open browser?", "Yes", "No"))
                {
                    // Application.Current.MainPage = new NavigationPage(new PageX());
                    //Device.OpenUri(new Uri("https://www.google.com/?gfe_rd=cr&ei=ccRwWIS7D8ao8weY9b_ADA#q=" + result.Text));
                    Device.OpenUri(new Uri("https://www.google.co.in/search?q=" + result.Text));
                }



                //

                /* rdrBtn.Clicked += (sender, e) => //Product Details Button
                 *
                 * {
                 *
                 *   Device.OpenUri(new Uri("https://www.google.co.in/search?q=" + result.Text));
                 *
                 *
                 * };*/
                // Navigate away
                //await Navigation.PopAsync();
            });

            overlay = new ZXingDefaultOverlay
            {
                TopText    = "Hold your phone up to the barcode/QRcode",
                BottomText = "Scanning will happen automatically",
                //ShowFlashButton = zxing.HasTorch,
            };

            /* var rdrBtn = new Button
             * {
             *   Text = "more",
             *   HorizontalOptions = LayoutOptions.End,
             *   VerticalOptions = LayoutOptions.End
             * };
             * rdrBtn.Clicked += (sender, e) => //Product Details Button
             *
             * {
             *
             *   Device.OpenUri(new Uri(lblurl));
             *
             *
             * }; */

            var back = new Button
            {
                Text = "Cancel",
                //BorderWidth = 1,
                HorizontalOptions = LayoutOptions.Start,
                VerticalOptions   = LayoutOptions.End
            };

            /*back.Clicked += (sender, e) => {
             *  //Navigation.PushModalAsync(new ());
             *  Application.Current.MainPage = new NavigationPage(new PageX());
             *  //
             *  //Navigation.PopModalAsync();
             *
             * };*/

            var rdrBtn = new Button
            {
                Text = "more",
                HorizontalOptions = LayoutOptions.End,
                VerticalOptions   = LayoutOptions.End
            };


            var flash = new Button
            {
                Image             = "ic_flash_on_black_24dp.png",
                HorizontalOptions = LayoutOptions.Center,
                VerticalOptions   = LayoutOptions.End
            };

            flash.Clicked += (sender, e) => {
                zxing.IsTorchOn = !zxing.IsTorchOn;
            };
            var grid = new Grid
            {
                VerticalOptions   = LayoutOptions.FillAndExpand,
                HorizontalOptions = LayoutOptions.FillAndExpand,
            };

            grid.Children.Add(zxing);
            grid.Children.Add(overlay);
            //grid.Children.Add(back);
            grid.Children.Add(rdrBtn);
            grid.Children.Add(flash);

            // The root page of your application
            Content = grid;
        }
Exemple #23
0
        private async void Button_Clicked(object sender, EventArgs e)
        {
            opts = new ZXing.Mobile.MobileBarcodeScanningOptions()
            {
                AutoRotate      = false,
                PossibleFormats = new List <ZXing.BarcodeFormat>()
                {
                    ZXing.BarcodeFormat.CODE_128,
                    ZXing.BarcodeFormat.CODABAR,
                    ZXing.BarcodeFormat.CODE_39,
                }
            };

            opts.TryHarder = true;

            zxing = new ZXingScannerView
            {
                IsScanning   = false,
                IsTorchOn    = false,
                IsAnalyzing  = false,
                AutomationId = "zxingDefaultOverlay",//zxingScannerView
                Opacity      = 22,
                Options      = opts
            };

            var torch = new Switch
            {
            };

            torch.Toggled += delegate
            {
                scanPage.ToggleTorch();
            };

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

            var Overlay = new ZXingDefaultOverlay
            {
                TopText         = "Włącz latarkę",
                BottomText      = "Skanowanie rozpocznie się automatycznie",
                ShowFlashButton = true,
                AutomationId    = "zxingDefaultOverlay",
            };

            var customOverlay = new StackLayout
            {
                HorizontalOptions = LayoutOptions.EndAndExpand,
                VerticalOptions   = LayoutOptions.EndAndExpand
            };

            grid.Children.Add(Overlay);
            Overlay.Children.Add(torch);
            Overlay.BindingContext = Overlay;

            scanPage = new ZXingScannerPage(opts, customOverlay: Overlay)
            {
                DefaultOverlayTopText = "Zeskanuj kod ",
                //DefaultOverlayBottomText = " Skanuj kod ";
                DefaultOverlayShowFlashButton = true
            };
            scanPage.OnScanResult += (result) =>
            {
                scanPage.IsScanning = false;
                scanPage.AutoFocus();
                Device.BeginInvokeOnMainThread(() =>
                {
                    Device.StartTimer(new TimeSpan(0, 0, 0, 2), () =>
                    {
                        if (scanPage.IsScanning)
                        {
                            scanPage.AutoFocus();
                        }
                        return(true);
                    });
                    Navigation.PopModalAsync();
                    entry_MM.Text = result.Text;
                    viewModel.ExecInsertToBase(result.Text);
                });
            };
            await Navigation.PushModalAsync(scanPage);
        }
Exemple #24
0
        public ScanPage()
        {
            InitializeComponent();

            _zxing = new ZXingScannerView();
        }
Exemple #25
0
        public LoyaltyScannerPage() : base()
        {
            zxing = new ZXingScannerView
            {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.FillAndExpand,
                AutomationId      = "zxingScannerView",
            };
            zxing.OnScanResult += (result) =>
            {
                // Stop analysis until we navigate away so we don't keep reading barcodes
                zxing.IsAnalyzing = false;

                Guid barcodeGuid;
                if (Guid.TryParse(result.Text, out barcodeGuid))
                {
                    vm.RecordScanAsync(barcodeGuid);

                    Device.BeginInvokeOnMainThread(async() =>
                    {
                        // Show an alert
                        //await DisplayAlert("Scanned Barcode", result.Text, "OK");

                        // Navigate away
                        //await Navigation.PopAsync();
                        var navServ = ((QuikRide.App)Xamarin.Forms.Application.Current).Kernel.GetService(typeof(INavigationService)) as INavigationService;
                        navServ.NavigateTo <LoyaltyBonusViewModel>();
                    });

                    /*.BeginInvokeOnMainThread(async () =>
                     * {
                     *  await Application.Current.MainPage.DisplayAlert("Thanks!", "You're the best!", "OK");
                     * });*/
                }
                else
                {
                    Device.BeginInvokeOnMainThread(async() =>
                    {
                        await Application.Current.MainPage.DisplayAlert("Oh oh!", "Try a loyalty barcode next time!", "OK");
                    });
                }
            };
            overlay = new ZXingDefaultOverlay
            {
                TopText         = "Hold your phone up to the barcode",
                BottomText      = "Scanning will happen automatically",
                ShowFlashButton = zxing.HasTorch,
                AutomationId    = "zxingDefaultOverlay",
            };
            overlay.FlashButtonClicked += (sender, e) =>
            {
                zxing.IsTorchOn = !zxing.IsTorchOn;
            };
            var grid = new Grid
            {
                VerticalOptions   = LayoutOptions.FillAndExpand,
                HorizontalOptions = LayoutOptions.FillAndExpand,
            };

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

            // The root page of your application
            Content = grid;
        }
        public CustomScanPage() : base()
        {
            result = null;

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

            SetScanOptions();

            zxing.OnScanResult += Zxing_OnScanResult;

            var inText = new Label
            {
                HeightRequest           = 32,
                WidthRequest            = 120,
                BackgroundColor         = Color.White,
                Text                    = "",
                FontSize                = 28,
                FontAttributes          = FontAttributes.Bold,
                VerticalTextAlignment   = TextAlignment.Center,
                HorizontalTextAlignment = TextAlignment.Center
            };

            string[] texts   = new string[] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "⬅", "0", "▶" };
            var      buttons = new Button[texts.Length];

            for (var j = 0; j < texts.Length; j++)
            {
                buttons[j] = new Button {
                    Text = texts[j], WidthRequest = 65, HeightRequest = 65, CornerRadius = 6, FontSize = 28, FontAttributes = FontAttributes.Bold
                };
                buttons[j].Clicked += (s, e) =>
                {
                    if (int.TryParse((s as Button).Text, out int num))
                    {
                        inText.Text += (s as Button).Text;
                    }
                    else if ((s as Button).Text == "⬅")
                    {
                        if (inText.Text.Length > 0)
                        {
                            inText.Text = inText.Text.Substring(0, inText.Text.Length - 1);
                        }
                    }
                    else
                    {
                        zxing.RaiseScanResult(new ZXing.Result(inText.Text, Encoding.ASCII.GetBytes(inText.Text), null, ZXing.BarcodeFormat.QR_CODE));
                    }
                };
            }
            var customKeyboard = new Grid
            {
                RowDefinitions = new RowDefinitionCollection {
                    new RowDefinition {
                        Height = 38
                    }, new RowDefinition {
                        Height = 72
                    }, new RowDefinition {
                        Height = 72
                    }, new RowDefinition {
                        Height = 72
                    }, new RowDefinition {
                        Height = 72
                    }
                },
                ColumnDefinitions = new ColumnDefinitionCollection {
                    new ColumnDefinition {
                        Width = 72
                    }, new ColumnDefinition {
                        Width = 72
                    }, new ColumnDefinition {
                        Width = 72
                    }
                },
                VerticalOptions   = LayoutOptions.End,
                HorizontalOptions = LayoutOptions.Center,
                IsVisible         = false,
                BackgroundColor   = Color.FromRgba(1.0, 1.0, 1.0, 0.7),
                Padding           = new Thickness(10, 5, 10, 2)
            };

            customKeyboard.Children.Add(inText, 0, 0);
            for (var j = 0; j < texts.Length; j++)
            {
                customKeyboard.Children.Add(buttons[j], j % 3, 1 + (int)(j / 3));
            }
            Grid.SetColumnSpan(inText, 3);

            var torch = new ImageButton
            {
                Source            = "torch.png",
                VerticalOptions   = LayoutOptions.End,
                HorizontalOptions = LayoutOptions.End,
                HeightRequest     = 96,
                WidthRequest      = 96
            };

            torch.Clicked += delegate
            {
                zxing.ToggleTorch();
            };

            var keyboard = new ImageButton
            {
                Source            = "numeric.png",
                VerticalOptions   = LayoutOptions.End,
                HorizontalOptions = LayoutOptions.Start,
                HeightRequest     = 96,
                WidthRequest      = 96
            };

            keyboard.Clicked += delegate
            {
                if (customKeyboard.IsVisible)
                {
                    customKeyboard.IsVisible = false;
                }
                else
                {
                    customKeyboard.IsVisible = true;
                }
            };

            var abort = new Button
            {
                Text = Language.GetText("Cancel"),
                HorizontalOptions = LayoutOptions.FillAndExpand,
                TextColor         = Color.White,
                HeightRequest     = 300
            };

            abort.Clicked += delegate
            {
                zxing.RaiseScanResult(null);
            };

            var customOverlayTop = new StackLayout
            {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.FillAndExpand,
                BackgroundColor   = Color.Black,
                Opacity           = 0.7,
                Children          =
                {
                    new Label
                    {
                        HeightRequest = 20,
                    },
                    new Label
                    {
                        Text = Language.GetText("AppTitle"),
                        HorizontalTextAlignment = TextAlignment.Center,
                        HorizontalOptions       = LayoutOptions.CenterAndExpand,
                        TextColor = Color.White
                    },
                    new Label
                    {
                        Text = "Scan QR code...",
                        HorizontalTextAlignment = TextAlignment.Center,
                        HorizontalOptions       = LayoutOptions.CenterAndExpand,
                        TextColor = Color.White
                    }
                }
            };

            var customOverlayCenter = new Grid
            {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.FillAndExpand,
                Opacity           = 0.7,
                Children          =
                {
                    new Image
                    {
                        VerticalOptions   = LayoutOptions.CenterAndExpand,
                        HorizontalOptions = LayoutOptions.Center,
                        Source            = "scanl1.png",
                        Aspect            = Aspect.AspectFit
                    },
                    new Image
                    {
                        VerticalOptions   = LayoutOptions.Center,
                        HorizontalOptions = LayoutOptions.CenterAndExpand,
                        Source            = "scanl2.png",
                        Aspect            = Aspect.AspectFill
                    },
                    new Xamarin.Forms.Shapes.Rectangle
                    {
                        VerticalOptions   = LayoutOptions.Center,
                        HorizontalOptions = LayoutOptions.CenterAndExpand,
                        WidthRequest      = 170,
                        HeightRequest     = 170,
                        Stroke            = Brush.Black,
                        StrokeThickness   = 1,
                        RadiusX           = 3,
                        RadiusY           = 3
                    },
                    torch,
                    keyboard,
                    customKeyboard
                }
            };

            var customOverlayBottom = new StackLayout
            {
                Orientation       = StackOrientation.Horizontal,
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.FillAndExpand,
                BackgroundColor   = Color.Black,
                Opacity           = 0.7,
                Padding           = new Thickness(0, 10, 0, 10),
            };

            customOverlayBottom.Children.Add(abort);
            //if(zxing.HasTorch) customOverlayBottom.Children.Add(torch); BUG on library, this returns always FALSE
            //customOverlayBottom.Children.Add(torch);

            var customOverlay = new Grid
            {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.FillAndExpand,
                RowDefinitions    = new RowDefinitionCollection
                {
                    new RowDefinition {
                        Height = new GridLength(1, GridUnitType.Star)
                    },
                    new RowDefinition {
                        Height = new GridLength(2, GridUnitType.Star)
                    },
                    new RowDefinition {
                        Height = new GridLength(1, GridUnitType.Star)
                    }
                },
                Children =
                {
                    customOverlayTop,
                    customOverlayCenter,
                    customOverlayBottom
                }
            };

            Grid.SetRow(customOverlayTop, 0);
            Grid.SetRow(customOverlayCenter, 1);
            Grid.SetRow(customOverlayBottom, 2);


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

            grid.Children.Add(zxing);
            grid.Children.Add(customOverlay);

            // The root page of your application
            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;
        }
Exemple #28
0
        private void InitializeQr()
        {
            _scannerView = new ZXingScannerView
            {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.FillAndExpand,
                AutomationId      = "zxingScannerView",
            };

            _scannerView.AutoFocus();

            _scannerView.OnScanResult += (result) =>
                                         Device.BeginInvokeOnMainThread(async() =>
            {
                await ProcessQr(result.Text);
            });

            var overlay = new Grid {
                AutomationId = "zxingDefaultOverlay"
            };

            overlay.RowDefinitions.Add(new RowDefinition {
                Height = new GridLength(1, GridUnitType.Star)
            });                                                                                             //0
            overlay.RowDefinitions.Add(new RowDefinition {
                Height = new GridLength(1, GridUnitType.Star)
            });                                                                                             //1
            overlay.RowDefinitions.Add(new RowDefinition {
                Height = new GridLength(1, GridUnitType.Star)
            });                                                                                             //2
            overlay.RowDefinitions.Add(new RowDefinition {
                Height = new GridLength(1, GridUnitType.Star)
            });                                                                                             //3
            overlay.RowDefinitions.Add(new RowDefinition {
                Height = new GridLength(1, GridUnitType.Star)
            });                                                                                             //4
            overlay.ColumnDefinitions.Add(new ColumnDefinition {
                Width = new GridLength(1, GridUnitType.Star)
            });                                                                                                  //0
            overlay.ColumnDefinitions.Add(new ColumnDefinition {
                Width = new GridLength(1, GridUnitType.Star)
            });                                                                                                  //1
            overlay.ColumnDefinitions.Add(new ColumnDefinition {
                Width = new GridLength(1, GridUnitType.Star)
            });                                                                                                  //2
            overlay.ColumnDefinitions.Add(new ColumnDefinition {
                Width = new GridLength(1, GridUnitType.Star)
            });                                                                                                  //3
            overlay.ColumnDefinitions.Add(new ColumnDefinition {
                Width = new GridLength(1, GridUnitType.Star)
            });                                                                                                  //4

            Image imageButton = new Image
            {
                Source            = "backscanner.png",
                Aspect            = Aspect.AspectFit,
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.FillAndExpand,
                BackgroundColor   = Color.Transparent,
            };

            var back = new Button
            {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.FillAndExpand,
                BackgroundColor   = Color.Transparent,
            };

            back.Clicked += OnBackButtonClicked;
            overlay.Children.Add(imageButton, 2, 4);
            overlay.Children.Add(back, 2, 4);

            Image scannerImage = new Image
            {
                Source            = "scannerhud.png",
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.FillAndExpand,
                Aspect            = Aspect.Fill,
            };

            overlay.Children.Add(scannerImage, 0, 0);
            Grid.SetColumnSpan(scannerImage, 5);
            Grid.SetRowSpan(scannerImage, 4);

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

            grid.Children.Add(_scannerView);
            grid.Children.Add(overlay);

            Content = grid;
        }
Exemple #29
0
 public MyResultHandler(CodBarrasV2 codBarrasV2, ZXingScannerView scannerView)
 {
     this.scannerView = scannerView;
     this.codBarrasV2 = codBarrasV2;
 }
Exemple #30
0
        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;
        }
        public Page4() : base()
        {
            zxing = new ZXingScannerView
            {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.FillAndExpand,
            };


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


                // Show an alert
                await DisplayAlert("Scanned Barcode", result.Text, "OK");
                await DisplayAlert("open url link?", result.ToString(), "Yes", cancel: "No");

                // Navigate away
                await Navigation.PopAsync();
            });

            overlay = new ZXingDefaultOverlay
            {
                TopText         = "Hold your phone up to the barcode",
                BottomText      = "Scanning will happen automatically",
                ShowFlashButton = zxing.HasTorch,
            };

            var back = new Button
            {
                Text = "Cancel",
                //BorderWidth = 1,
                HorizontalOptions = LayoutOptions.Center,
                VerticalOptions   = LayoutOptions.End
            };

            back.Clicked += (sender, e) => {
                //Navigation.PushModalAsync(new ());
                //Application.Current.MainPage = new NavigationPage(new MainPage());
                //
                //Navigation.PushModalAsync(new MainPage());
            };

            overlay.FlashButtonClicked += (sender, e) => {
                zxing.IsTorchOn = !zxing.IsTorchOn;
            };
            var grid = new Grid
            {
                VerticalOptions   = LayoutOptions.FillAndExpand,
                HorizontalOptions = LayoutOptions.FillAndExpand,
            };

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

            // The root page of your application
            Content = grid;
        }
Exemple #32
0
        public LeitorQRView()
        {
            InitializeComponent();

            NavigationPage.SetHasNavigationBar(this, false);

            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
            };



            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;


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

            //zxing.OnScanResult += (result) =>
            //    Device.BeginInvokeOnMainThread(async () => {

            //        // Stop analysis until we navigate away so we don't keep reading barcodes
            //        zxing.IsAnalyzing = false;

            //        // Show an alert
            //        await DisplayAlert("Scanned Barcode", result.Text, "OK");

            //        // Navigate away
            //        await Navigation.PopAsync();
            //    });

            //EscanerQR.Children.Add(zxing);
        }
Exemple #33
0
        public SaoPage() : base()
        {
            //try
            //{

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

            zxing.OnScanResult += (result) =>
                                  Device.BeginInvokeOnMainThread(async() =>
            {
                zxing.IsAnalyzing = false;
                zxing.IsScanning  = false;
                try
                {
                    zxing.IsTorchOn = false;
                }
                catch (Exception)
                {
                }
                if (ToolsClass.IsUrl(result.Text))
                {
                    //Navigation.RemovePage(this);
                    await Navigation.PushAsync(new WebViewPage(result.Text));
                    return;
                }
                else
                {
                    await DisplayAlert("二维码的值为:", result.Text, "确定");
                }
                // Show an alert


                // Navigate away
                await Navigation.PopAsync();
            });

            overlay = new MyZXingOverlay
            {
                TopText         = "请对准二维码",
                BottomText      = "阴暗天气建议打开闪光灯",
                ShowFlashButton = true,
                ButtonText      = "开灯"
            };
            overlay.FlashButtonClicked += (sender, e) =>
            {
                try
                {
                    if (!zxing.IsTorchOn)
                    {
                        sender.Text = "关灯";
                        //CrossLampState = true;
                        zxing.IsTorchOn = true;
                    }
                    else
                    {
                        sender.Text     = "开灯";
                        zxing.IsTorchOn = false;
                    }
                }
                catch (Exception)
                {
                }
            };
            var grid = new Grid
            {
                VerticalOptions   = LayoutOptions.FillAndExpand,
                HorizontalOptions = LayoutOptions.FillAndExpand,
            };

            grid.Children.Add(zxing);
            grid.Children.Add(overlay);
            Content = grid;
        }