Пример #1
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;
        }
Пример #2
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;
        }