Exemplo n.º 1
0
        private async Task runQrScanner()
        {
            List <BarcodeFormat> formats = new List <BarcodeFormat>();

            formats.Add(BarcodeFormat.QR_CODE);

            var options = new MobileBarcodeScanningOptions
            {
                AutoRotate = false,
                UseFrontCameraIfAvailable = true,
                TryHarder       = true,
                PossibleFormats = formats
            };


            scanPage = new ZXingScannerPage();
            scanPage.OnScanResult += (result) =>
            {
                scanPage.IsScanning = false;

                Device.BeginInvokeOnMainThread(async() =>
                {
                    await Navigation.PopModalAsync();
                    await Navigation.PushModalAsync(new Loader());
                    TreeData treeData = await ApiService.GetTreeInfoAsync(result.Text);

                    if (treeData != null && !treeData.error)
                    {
                        //for some reson here you have to make this lines in MainThread , you did it above but the below working on Task so to update UI you should implment
                        //in UI MainThread
                        if (treeData.treeNotSold)
                        {
                            Device.BeginInvokeOnMainThread(async() =>
                            {
                                errorModel.Status = "Please scan QR code";
                                await Navigation.PushAsync(new NotSoldTreeView(treeData));
                            });
                        }
                        else
                        {
                            Device.BeginInvokeOnMainThread(async() =>
                            {
                                errorModel.Status = "Please scan QR code";
                                await Navigation.PushAsync(new TreeDetails(treeData));
                            });
                            //Will work ^_^
                        }

                        await Navigation.PopModalAsync();
                    }
                    else
                    {
                        await Navigation.PopModalAsync();
                        errorModel.Status = "Invalid code, please scan an other one";
                    }
                });
            };
            await Navigation.PushModalAsync(scanPage);
        }
Exemplo n.º 2
0
        private async void BtnBusquedaPorCodigo_Clicked(object sender, EventArgs e)
        {
            try
            {
                string strIpDeConexion    = string.Empty;
                string strMetodoCadena    = string.Empty;
                string strCodigoEscaneado = string.Empty;

                var scannerPage = new ZXingScannerPage();
                scannerPage.Title = "Lector de QR";

                var status = await CrossPermissions.Current.CheckPermissionStatusAsync <CameraPermission>();

                if (status != PermissionStatus.Granted)
                {
                    if (await CrossPermissions.Current.ShouldShowRequestPermissionRationaleAsync(Permission.Location))
                    {
                        await DisplayAlert("Se necesitan permisos para usar la camara", "¿Desea otorgar permisos a la camara?", "OK");
                    }

                    status = await CrossPermissions.Current.RequestPermissionAsync <CameraPermission>();
                }

                if (status == PermissionStatus.Granted)
                {
                    scannerPage.OnScanResult += (result) =>
                    {
                        scannerPage.IsScanning = false;
                        Device.BeginInvokeOnMainThread(() =>
                        {
                            Navigation.PopModalAsync();

                            //strIpDeConexion = "http://192.168.0.7:8081/";
                            strIpDeConexion = "http://192.168.100.43:100/";
                            //strIpDeConexion = "http://192.168.10.218:100/";
                            //strIpDeConexion = "http://192.168.100.24:100/";
                            strMetodoCadena      = "LeerExcel/";
                            strCodigoEscaneado   = result.Text;
                            var strLigaConsultar = string.Empty;

                            strLigaConsultar = strIpDeConexion + strMetodoCadena + "2&" + strCodigoEscaneado;
                            obtenerProductos(strLigaConsultar);
                        });
                    };
                    await Navigation.PushModalAsync(scannerPage);
                }

                else if (status != PermissionStatus.Unknown)
                {
                    await DisplayAlert("Se necesitan permisos para usar la camara", "Favor de Otorgar permisos a la camara", "OK");
                }
            }

            catch (Exception ex)
            {
                await DisplayAlert("Error", ex.Message, "OK");
            }
        }
Exemplo n.º 3
0
        public async Task Capturar()
        {
            scanPage = await Util.CapturarCodigoAsync(scanPage, "Escanear Codigo", ZXing.BarcodeFormat.EAN_13);// QR_CODE);

            try
            {
                if (!iniCapt)
                {
                    scanPage.OnScanResult += (resut) =>
                    {
                        Device.BeginInvokeOnMainThread(async() =>
                        {
                            try
                            {
                                if (exibindoMsg)
                                {
                                    return;
                                }

                                scanPage.IsScanning = false;

                                if (!string.IsNullOrEmpty(CodigoCapturado))
                                {
                                    return;
                                }

                                Util.Vibrar();

                                CodigoCapturado = resut.Text;
                                await Navigation.PopModalAsync();


                                Inventario inventario = new Inventario
                                {
                                    InvCodigo = CodigoCapturado
                                                //Categoria = txtCategoria.Text.Trim(),
                                                //Preco = Convert.ToDecimal(txtPreco.Text)
                                };

                                await dataService.AddInventarioAsync(inventario);
                            }
                            catch (Exception ex)
                            {
                                exibindoMsg = true;
                                await this.DisplayAlert("Atenção", "Codigo invalido tente novamente !", "ok");
                                exibindoMsg = false;
                            }
                        });
                    };
                    iniCapt = true;
                }
                CodigoCapturado = "";
                await Navigation.PushModalAsync(scanPage);
            }
            catch (Exception e)
            {
            }
        }
Exemplo n.º 4
0
        public AddContactViewModel(ObservableCollection <Contacts> contactsList)
        {
            Source     = "Person.png";
            NewContact = new Contacts()
            {
                Photo = "Mine.jpg"
            };
            AddCommand = new Command(async() =>
            {
                contactsList.Add(new Contacts
                {
                    Name    = NewContact.Name,
                    Last    = NewContact.Last,
                    Company = NewContact.Company,
                    Phone   = NewContact.Phone,
                    Mobile  = NewContact.Mobile,
                    Email   = NewContact.Email,
                    Home    = NewContact.Home
                });
                //using (var realm = Realm.GetInstance())
                //{
                //	realm.Write(() =>
                //	{
                //		realm.Add(contactsList[contactsList.Count-1]);
                //	});
                //}
                await App.Current.MainPage.Navigation.PopAsync();
            });

            PhotoCommand = new Command(DisplayElementPhoto);

            ScanCommand = new Command <Contacts>(async(_selected) => {
                var ScanPage           = new ZXingScannerPage();
                ScanPage.OnScanResult += (result) =>
                {
                    ScanPage.IsScanning = false;

                    Device.BeginInvokeOnMainThread(async() =>
                    {
                        var split = result.Text.Split('*');
                        contactsList.Add(new Contacts
                        {
                            Name    = split[0],
                            Last    = split[1],
                            Company = null,
                            Phone   = split[2],
                            Mobile  = null,
                            Email   = null,
                            Home    = null
                        });
                        await App.Current.MainPage.Navigation.PopAsync();
                        await App.Current.MainPage.Navigation.PopAsync();
                        await App.Current.MainPage.DisplayAlert("Done It", $"The new contact is {result.Text}", "Ok");
                    });
                };
                await App.Current.MainPage.Navigation.PushAsync(ScanPage);
            });
        }
Exemplo n.º 5
0
        public async Task <ZXingScannerPage> PushScanModal(MobileBarcodeScanningOptions options = null)
        {
            options ??= new MobileBarcodeScanningOptions();

            var page = new ZXingScannerPage(options);
            await m_app.MainPage.Navigation.PushModalAsync(page);

            return(page);
        }
Exemplo n.º 6
0
        private async Task NewMethod()
        {
            ScanImage.SetValue(IsVisibleProperty, true);

            try
            {
                if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
                {
                    await DisplayAlert("No Camera", ":( No camera available.", "OK");

                    return;
                }
                else
                {
                    var file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
                    {
                        Directory   = "Sample",
                        Name        = "test.jpg",
                        SaveToAlbum = true,
                    });

                    if (file == null)
                    {
                        return;
                    }

                    if (ScanImage != null)
                    {
                        ScanImage.Source = ImageSource.FromStream(() =>
                        {
                            var stream = file.GetStream();
                            file.Dispose();
                            return(stream);
                        });
                        //  mainSTack.IsVisible = false;
                    }
                }

                var scan = new ZXingScannerPage();
                await Navigation.PushAsync(scan);

                scan.OnScanResult += (result) =>
                {
                    ZXing.BarcodeFormat barcodeFormat = result.BarcodeFormat;
                    string type = barcodeFormat.ToString();
                    Device.BeginInvokeOnMainThread(async() =>
                    {
                        await Navigation.PopAsync();

                        VinEnteredNumber.Text = result.Text;
                    });
                };
            }catch (Exception ex)
            {
                await DisplayAlert("Alert", " " + ex, "OK");
            }
        }
Exemplo n.º 7
0
 public MainPage()
 {
     InitializeComponent();
     _scanPage = new ZXingScannerPage
     {
         DefaultOverlayBottomText = "", DefaultOverlayTopText = "線をバーコードに合わせてください。",
     };
     _scanPage.OnScanResult += ScanPageOn_OnScanResult;
 }
Exemplo n.º 8
0
        public async void Scan(Entidade_Leitura leitura)
        {
            try
            {
                string resultado = "";
                //https://julianocustodio.com/2017/11/03/scanner/
                var scanpage = new ZXingScannerPage();

                scanpage.OnScanResult += (result) =>
                {
                    // Parar de escanear
                    scanpage.IsScanning = false;
                    //Poderia fazer qualquer outra ação
                    resultado = result.Text;
                    // Alert com o código escaneado
                    Device.BeginInvokeOnMainThread(() =>
                    {
                        if ((Controle.ValidaBarcodeSN(result.Text)))
                        {
                            if (InventoryPD3.App._position != null)
                            {
                                leitura.CodigoBarras     = result.Text;
                                leitura.TimestampLeitura = DateTime.Now.ToString();
                                leitura.GPSAccuracy      = InventoryPD3.App._position.Accuracy.ToString();
                                leitura.GPSLatitude      = InventoryPD3.App._position.Latitude.ToString();
                                leitura.GPSLongitude     = InventoryPD3.App._position.Longitude.ToString();
                                leitura.GPSTimestamp     = InventoryPD3.App._position.Timestamp.ToString();
                                leitura.Synced           = false;
                                leitura.CaminhoImg       = "N/A";
                                leitura.urlImg           = "N/A";
                                leitura.Data             = "N/A";
                                leitura.TimestampFoto    = DateTime.Now.ToString();
                                //TakeCam(leitura); comentado pois desde 25/01 decidiu-se que não vamos mais armazenar a imagem do produto
                                DisplayAlert("Código Lido!", "O SN " + result.Text + " foi lido com sucesso!", "OK");
                                SendToSQLite(leitura);
                                //SendToFirebase(leitura);
                            }
                            else
                            {
                                DisplayAlert("Status GPS", "Não há sinal informações de localização", "OK");
                            }
                        }
                        else
                        {
                            Navigation.PopAsync();
                            DisplayAlert("Código inválido!", "Esse não é o código de barras do número de série do produto.", "OK");
                            Scan(leitura);
                        }
                    });
                };

                await Navigation.PushAsync(scanpage);
            }
            catch (Exception e)
            {
            }
        }
Exemplo n.º 9
0
        //async void ScanButtonClicked(object sender, EventArgs s) {
        //    var scanPage = new ZXingScannerPage() {
        //        DefaultOverlayTopText = "バーコードを読み取ります",
        //        DefaultOverlayBottomText = "",
        //    };
        //    await Navigation.PushAsync(scanPage);
        //    scanPage.OnScanResult += (result) => {
        //        scanPage.IsScanning = false;
        //        Device.BeginInvokeOnMainThread(async () => {
        //            scanedcode = result.Text;
        //            await Navigation.PopAsync();
        //            //await DisplayAlert("Scan Done!", result.Text, "OK");//これは消して良い
        //            //スキャンして得た情報を使って何かしたい場合
        //            //ここに処理を書く
        //        });
        //    };
        //}

        async void LightScanBtnClicked(object sender, EventArgs s)
        {
            var scanPage = new ZXingScannerPage()
            {
                DefaultOverlayTopText    = "バーコードを読み取ります",
                DefaultOverlayBottomText = "",
            };
            await Navigation.PushAsync(scanPage);

            scanPage.OnScanResult += (result) => {
                scanedcode          = result.Text;
                scanPage.IsScanning = false;
                Device.BeginInvokeOnMainThread(async() => {
                    await Navigation.PopAsync();

                    DependencyService.Get <IMyFormsToast>().Show("LightWeghtTest:" + scanedcode);
                    GetObjects gj     = new GetObjects();
                    string jsonString = await gj.GetItemJsonString(scanedcode);
                    if (jsonString != "null")
                    {
                        SearchedInfo thingInfo = gj.GetItemObjectFromJson(jsonString);
                        //userIdはとりあえず1の人固定
                        int userId = 1;
                        //int itemId = thingInfo[0].Id;
                        int itemId = thingInfo.Id;
                        //個数はとりあえず1個固定
                        int itemNum = 1;

                        //購入品情報を作成
                        Bought_thing bt = new Bought_thing();
                        bt.user_id      = userId;
                        bt.thing_id     = itemId;
                        bt.num          = itemNum;

                        PostJson pj = new PostJson();
                        //Postして購入済みリストに追加、次の購入日を取得
                        Next_buy_date nextBuyDate = await pj.PostBoughtThingInfo(bt);

                        DependencyService.Get <IMyFormsToast>().Show("次の購入日を取得:" + nextBuyDate.next_buy_date);

                        //消耗品リスト作成
                        Bought_expendable be = new Bought_expendable();
                        be.user_id           = userId;
                        be.thing_id          = thingInfo.Id;
                        be.limit             = nextBuyDate.next_buy_date;
                        //Postして消耗品リストに登録
                        Expendables postedEx = await pj.PostExpendablesInfo(be);

                        DependencyService.Get <IMyFormsToast>().Show("消耗品リストに登録しました: " + postedEx.created_at);
                    }
                    else    //json null
                    {
                        DependencyService.Get <IMyFormsToast>().Show("該当の商品情報がありません!");
                    }
                });
            };
        }
Exemplo n.º 10
0
        async void EntryScan(Image image)
        {
            try
            {
                var scanPage = new ZXingScannerPage();
                await Navigation.PushAsync(scanPage);

                scanPage.OnScanResult += (result) =>
                {
                    Device.BeginInvokeOnMainThread(async() =>
                    {
                        await Navigation.PopAsync();

                        SfTextInputLayout sfInputText = null;
                        Entry entry             = null;
                        CustomDatePicker picker = null;

                        foreach (View t in entryStack.Children)
                        {
                            if (t.StyleId == image.StyleId)
                            {
                                var stack = (StackLayout)t;

                                foreach (View v in stack.Children)
                                {
                                    if (v.StyleId == image.StyleId)
                                    {
                                        string type = v.GetType().ToString();

                                        if (type == "ASolute_Mobile.CustomRenderer.CustomEntry")
                                        {
                                            CustomEntry customentry = (CustomEntry)v;
                                            customentry.Text        = result.Text;
                                        }
                                        else if (type == "Syncfusion.XForms.TextInputLayout.SfTextInputLayout")
                                        {
                                            sfInputText = (SfTextInputLayout)v;
                                            entry       = (Entry)sfInputText.InputView;
                                            entry.Text  = result.Text;
                                        }
                                        else if (type == "ASolute_Mobile.CustomRenderer.CustomDatePicker")
                                        {
                                            picker      = (CustomDatePicker)v;
                                            picker.Date = DateTime.Parse(result.Text);
                                        }
                                    }
                                }
                            }
                        }
                    });
                };
            }
            catch
            {
            }
        }
Exemplo n.º 11
0
        async void OnButtonClickedCapture(object sender, EventArgs args)
        {
            // Create our custom overlay
            var customOverlay = new StackLayout
            {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.FillAndExpand
            };
            var torch = new Button
            {
                Text = "Toggle Torch"
            };

            customOverlay.Children.Add(torch);

            //setup options
            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_128, ZXing.BarcodeFormat.CODE_39
                }
            };

            //add options and customize page
            var scanPage = new ZXingScannerPage(options)
            {
                DefaultOverlayTopText         = "Align the barcode within the frame",
                DefaultOverlayBottomText      = string.Empty,
                DefaultOverlayShowFlashButton = true
            };

            torch.Clicked += delegate
            {
                scanPage.ToggleTorch();
            };
            scanPage.OnScanResult += (result) =>
            {
                // Stop scanning
                scanPage.IsScanning = false;

                // Pop the page and show the result
                Device.BeginInvokeOnMainThread(async() =>
                {
                    await Navigation.PopModalAsync();
                    await DisplayAlert("Scanned Barcode", result.Text, "OK");
                    model.BarCode = result.Text;
                });
            };
            // Navigate to our scanner page
            await Navigation.PushModalAsync(scanPage);
        }
Exemplo n.º 12
0
        public ScanningPage()
        {
            Title = "Scanner";

            var page = new ZXingScannerPage();

            page.IsScanning    = true;
            page.OnScanResult += Display;
            OnScanResult      += Display;
        }
Exemplo n.º 13
0
        private async void Button_Clicked(object sender, EventArgs e)
        {
            var option = new ZXing.Mobile.MobileBarcodeScanningOptions();

            option.AutoRotate      = true;
            option.PossibleFormats = new List <ZXing.BarcodeFormat>()
            {
                ZXing.BarcodeFormat.EAN_8, ZXing.BarcodeFormat.EAN_13, ZXing.BarcodeFormat.CODE_128
            };
            var scanPage = new ZXingScannerPage(option);

            scanPage.HeightRequest = 300;
            scanPage.WidthRequest  = 200;

            scanPage.OnScanResult += (result) =>
            {
                // Stop scanning
                scanPage.IsScanning = false;
                if (scanPage.IsScanning)
                {
                    scanPage.AutoFocus();
                }

                // Pop the page and show the result
                Device.BeginInvokeOnMainThread(async() =>
                {
                    await Navigation.PopAsync();
                    // await DisplayAlert("Scanned Barcode", result.Text, "OK");
                    try
                    {
                        var data = result.Text.Split(';');
                        if (data.Length > 0)
                        {
                            var context    = BindingContext as TracingViewModel;
                            var resultData = await context.Find(data[0], data[1]);
                            if (result != null)
                            {
                                await Navigation.PushAsync(new TrackingDetail(resultData));
                            }
                        }
                        else
                        {
                            throw new SystemException("Ulangi Scan QR Code");
                        }
                    }
                    catch (Exception ex)
                    {
                        await DisplayAlert("Error", ex.Message, "OK");
                    }
                });
            };
            // Navigate to our scanner page
            await Navigation.PushAsync(scanPage);
        }
        /// <summary>
        /// Scan QR Code
        /// </summary>
        private async void tiQRCode_Activated(object sender, EventArgs e)
        {
            if (!App.AppSettings.QRCodeEnabled)
            {
                return;
            }

            var expectedFormat = ZXing.BarcodeFormat.QR_CODE;
            var opts           = new ZXing.Mobile.MobileBarcodeScanningOptions
            {
                PossibleFormats = new List <ZXing.BarcodeFormat> {
                    expectedFormat
                }
            };

            System.Diagnostics.Debug.WriteLine("Scanning " + expectedFormat);

            var scanPage = new ZXingScannerPage(opts);

            scanPage.OnScanResult += (result) =>
            {
                scanPage.IsScanning = false;

                Device.BeginInvokeOnMainThread(async() =>
                {
                    await Navigation.PopAsync();
                    try
                    {
                        var qrCodeId = result.Text.GetHashCode() + "";
                        var qrCode   = App.AppSettings.QRCodes.FirstOrDefault(o => o.Id == qrCodeId);
                        if (qrCode != null && qrCode.Enabled)
                        {
                            App.AddLog("QR Code ID Found: " + qrCodeId);
                            App.ShowToast(AppResources.qrcode + " " + qrCode.Name);
                            await App.ApiService.HandleSwitch(qrCode.SwitchIDX, qrCode.SwitchPassword, -1, qrCode.Value,
                                                              qrCode.IsScene);
                            App.SetMainPage();
                        }
                        else
                        {
                            App.AddLog("QR Code ID not registered: " + qrCodeId);
                            App.ShowToast(
                                qrCode == null ? AppResources.qrcode_new_found : AppResources.qr_code_disabled);
                        }
                    }
                    catch (Exception ex)
                    {
                        App.AddLog(ex.Message);
                    }
                });
            };

            await Navigation.PushAsync(scanPage);
        }
Exemplo n.º 15
0
        private void GroupListView_OnItemSelected(object sender, SelectedItemChangedEventArgs e)
        {
            if (e.SelectedItem is MemoryItem)
            {
                var memoryItem = e.SelectedItem as MemoryItem;

                // open ScanPage

                var scanPage = new ZXingScannerPage();

                scanPage.OnScanResult += async(result) =>
                {
                    // Stop scanning
                    scanPage.IsScanning = false;

                    if (!string.IsNullOrEmpty(result.Text))
                    {
                        memoryItem.Title = result.Text;
                        await SaveFile();
                    }
                    else
                    {
                        await DisplayAlert("Warnung", "QR-Code konnte nicht gescannt werden.", "OK");
                    }

                    // Pop the page and show the result
                    Device.BeginInvokeOnMainThread(() => { Navigation.PopModalAsync(); });
                };

                // Navigate to our scanner page
                Navigation.PushModalAsync(scanPage);
            }
            else if (e.SelectedItem is MemoryGroup)
            {
                var group = e.SelectedItem as MemoryGroup;
                UserDialogs.Instance.Prompt(new PromptConfig
                {
                    Title      = "Gib ein",
                    InputType  = InputType.Default,
                    Text       = group.Name,
                    OkText     = "Erstellen",
                    CancelText = "Abbrechen",
                    OnAction   = result =>
                    {
                        if (!result.Ok)
                        {
                            return;
                        }
                        group.Name = result.Text;
                    }
                });
            }
            ((ListView)sender).SelectedItem = null;
        }
        private async void Barcode_Clicked(object sender, EventArgs e)
        {
            // Create our custom overlay
            var customOverlay = new StackLayout
            {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.EndAndExpand
            };
            var cancel = new Button
            {
                Text            = "Cancel",
                VerticalOptions = LayoutOptions.End
            };

            cancel.Clicked += delegate {
                Device.BeginInvokeOnMainThread(() =>
                {
                    Navigation.PopAsync();
                });
            };
            customOverlay.Children.Add(cancel);


            scanPage = new ZXingScannerPage(new ZXing.Mobile.MobileBarcodeScanningOptions {
                AutoRotate = true, TryHarder = true
            }, customOverlay: customOverlay);
            scanPage.OnScanResult += (result) => {
                scanPage.IsScanning = false;

                if (result != null && result.Text.Length > 0)
                {
                    viewModel.SearchInput = result.Text;


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

                    viewModel.SearchCommand();
                }
                else
                {
                    viewModel.NoSearchResult_Message();
                    Device.BeginInvokeOnMainThread(() =>
                    {
                        Navigation.PopAsync();
                    });
                }
            };

            await Navigation.PushAsync(scanPage);
        }
Exemplo n.º 17
0
        public async void ScanQRCode()
        {
            ZXingScannerPage ScannerPage = viewHolder.Scan();

            ScannerPage.OnScanResult += (result) => {
                Device.BeginInvokeOnMainThread(() => {
                    Navigation.PopAsync();
                });
            };

            await Navigation.PushAsync(ScannerPage);
        }
Exemplo n.º 18
0
        private void ButtonScanDefault_Clicked(object sender, EventArgs e)
        {
            scanPage = new ZXingScannerPage();
            scanPage.OnScanResult += (result) => {
                scanPage.IsScanning = false;

                Device.BeginInvokeOnMainThread(() => {
                    Navigation.PopAsync();
                    DisplayAlert("Scanned Barcode", result.Text, "OK");
                });
            };
        }
Exemplo n.º 19
0
        async Task NavigateToScannerpage()
        {
            //setup Scanner options
            MobileBarcodeScanningOptions options = new MobileBarcodeScanningOptions
            {
                AutoRotate = false,
                UseFrontCameraIfAvailable = false,
                TryHarder = true,
                DelayBetweenContinuousScans = 10000,
                DisableAutofocus            = false
            };

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

            overlay.BindingContext = overlay;
            ZXingScannerPage scanPage = new ZXingScannerPage(options, overlay)
            {
                HasTorch  = true,
                IsTorchOn = false
            };

#pragma warning disable CS1998 // This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread.
            overlay.FlashButtonClicked += async(sender, e) =>
            {
#pragma warning restore CS1998 // This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread.
                scanPage.ToggleTorch();
            };

            scanPage.OnScanResult += (result) =>
            {
                // Stop scanning
                scanPage.IsScanning = false;
                // Pop the page and show the result
                Device.BeginInvokeOnMainThread(async() =>
                {
                    await Navigation.PopAsync();

                    if (result != null && !string.IsNullOrWhiteSpace(result.Text))
                    {
                        Process(result.Text);
                        //_application.mqttHelper.PublishMQTT(result.Text, "BarcodeDEMOXacti");
                    }
                });
            };
            // Navigate to our scanner page
            await Navigation.PushAsync(scanPage);
        }
Exemplo n.º 20
0
        public async void JobNoScan(object sender, EventArgs e)
        {
            var scanPage = new ZXingScannerPage();
            await Navigation.PushAsync(scanPage);

            scanPage.OnScanResult += (result) =>
            {
                Device.BeginInvokeOnMainThread(() =>
                {
                    JobNoList(result.Text);
                });
            };
        }
Exemplo n.º 21
0
        async private void Button_Scan(object sender, EventArgs e)
        {
            var Scan = new ZXingScannerPage();
            await Navigation.PushAsync(Scan);

            Scan.OnScanResult += (result) =>
            {
                Device.BeginInvokeOnMainThread(async() =>
                {
                    await Navigation.PushAsync(new Checkproduct(result.ToString()));
                });
            };
        }
Exemplo n.º 22
0
        async void scanClicked(object sender, EventArgs e)
        {
			
            //MobileBarcodeScanner.Initialize(Application);
            //await DisplayAlert("notice", "start scan carcode", "yes");

#if __ANDROID__
    // Initialize the scanner first so it can track the current context
            MobileBarcodeScanner.Initialize (Application);
#endif
            // Initialize the scanner first so it can track the current context
            //if (Device.RuntimePlatform == Device.Android)
            //        {
            //ZXing.Mobile.MobileBarcodeScanner.Initialize(Application);
            //}
            var scanPage = new ZXingScannerPage();
            //string results="";
            scanPage.Title = "Please Scan barcode";
            scanPage.OnScanResult += (result) => {
                // stop scanning
                scanPage.IsScanning = false;

                // show scan result
                Device.BeginInvokeOnMainThread(() => {
                    App.barcode = result.Text;
                    //DisplayAlert("Scanned Barcode", result.Text, "OK");
                    //DisplayAlert("Scanned Barcode from APP", App.barcode, "OK");
                    Navigation.PopAsync();

                });
            };

            // go to scan page
            await Navigation.PushAsync(scanPage);

            Device.StartTimer(new TimeSpan(0, 0, 1), () =>
            {
                if (App.barcode == null)
                    return true;
                else
                {
                    var result = App.barcode;
                    bar.Text = result;
					SearchBarcodeAsync();
                    return false;
                }
            });
            
         

        }
Exemplo n.º 23
0
        public async Task Capturar()
        {
            scanPage = await Util.CapturarQRCodeAsync(scanPage, "Escanear código", ZXing.BarcodeFormat.QR_CODE);

            if (!iniCapt)
            {
                //configura apenas uma vez o evento de capturar
                scanPage.OnScanResult += (result) =>
                {
                    Device.BeginInvokeOnMainThread(async() =>
                    {
                        try
                        {
                            //Se há alguma mensagem a exibir é interrompido a captura do QRcode
                            if (exibindoMsg)
                            {
                                return;
                            }

                            scanPage.IsScanning = false;


                            if (!string.IsNullOrEmpty(CodigoCapturado))
                            {
                                return;
                            }

                            Util.Vibrar();

                            CodigoCapturado = result.Text;
                            await Navigation.PopAsync();
                        }
                        catch (Exception ex)
                        {
                            exibindoMsg = true;
                            await this.DisplayAlert("ATENÇÃO", "Código inválido! Tente Novamente", "OK");
                            exibindoMsg = false;
                            //ñ necessario
                            //throw;
                        }
                    });
                };
                iniCapt = true;
            }

            //sem codigo
            CodigoCapturado = "";

            //Abre a tela de captura
            await Navigation.PushAsync(scanPage);
        }
        private async void ScanQR_Clicked(object sender, EventArgs e)
        {
            var scanPage = new ZXingScannerPage();

            scanPage.OnScanResult += (result) =>
            {
                Device.BeginInvokeOnMainThread(async() =>
                {
                    await Navigation.PushModalAsync(new MainPage(result.Text));
                });
            };

            await Navigation.PushModalAsync(scanPage);
        }
Exemplo n.º 25
0
        private async void Handle_Clicked(object sender, EventArgs e)
        {
            var scan = new ZXingScannerPage();
            await Navigation.PushAsync(scan);

            scan.OnScanResult += (result) =>
            {
                Device.BeginInvokeOnMainThread(async() =>
                {
                    await Navigation.PopAsync();
                    mycode.Text = result.Text;
                });
            };
        }
Exemplo n.º 26
0
        private async void Scan_Clicked(object sender, EventArgs e)
        {
            var scan = new ZXingScannerPage();
            await Navigation.PushAsync(scan);

            scan.OnScanResult += (result) =>
            {
                Device.BeginInvokeOnMainThread(async() =>
                {
                    await Navigation.PopAsync();
                    Find(Int32.Parse(result.ToString()));
                });
            };
        }
        //icon in screen and decide what to do by check the call uri
        async void IconTapped(object sender, EventArgs e)
        {
            loading.IsVisible = true;
            try
            {
                if (menuItems.Id == "FuelCost")
                {
                    await Navigation.PushAsync(new RefuelEntry(menuItems.Name));
                }
                else if (menuItems.Id == "LogBook")
                {
                    await Navigation.PushAsync(new LogEntry("", menuItems.Name));
                }
                else
                {
                    var scanPage = new ZXingScannerPage();
                    await Navigation.PushAsync(scanPage);

                    scanPage.OnScanResult += (result) =>
                    {
                        Device.BeginInvokeOnMainThread(async() =>
                        {
                            if (menuItems.Id == "JobList" && Ultis.Settings.App == "asolute.Mobile.AILSHaulage")
                            {
                                scanPage.PauseAnalysis();
                                var content          = await CommonFunction.CallWebService(0, null, Ultis.Settings.SessionBaseURI, ControllerUtil.addJobURL(result.Text), this);
                                clsResponse response = JsonConvert.DeserializeObject <clsResponse>(content);
                                if (response.IsGood)
                                {
                                    Ultis.Settings.RefreshListView = "Yes";
                                    GetListData();
                                    displayToast("Job added to job list.");
                                }
                                scanPage.ResumeAnalysis();
                            }
                            else
                            {
                                await Navigation.PopAsync();
                                searchBar.Text = result.Text;
                            }
                        });
                    };
                }
                loading.IsVisible = false;
            }
            catch (Exception ex)
            {
                await DisplayAlert("Error", ex.Message, "OK");
            }
        }
Exemplo n.º 28
0
        /// <summary>
        /// Scan continuously
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void ScanContinuouslyButton_Clicked(object sender, EventArgs e)
        {
            scanPage = new ZXingScannerPage(new ZXing.Mobile.MobileBarcodeScanningOptions {
                DelayBetweenContinuousScans = 3000
            });
            scanPage.OnScanResult += (result) => {
                scanPage.IsScanning = false;

                Device.BeginInvokeOnMainThread(() => {
                    DisplayAlert("Scanned Barcode", result.Text, "OK");
                });
            };
            await Navigation.PushAsync(scanPage);
        }
Exemplo n.º 29
0
        private async void Scanner(string option, string code = "")
        {
            Connected();
            var scannerPage = new ZXingScannerPage();

            scannerPage.Title         = "Escaneando paquete";
            scannerPage.OnScanResult += (result) =>
            {
                scannerPage.IsScanning = false;
                Device.BeginInvokeOnMainThread(() =>
                {
                    Navigation.PopAsync();
                    Loader(true);
                    if (CrossVibrate.IsSupported && CrossVibrate.Current.CanVibrate)
                    {
                        CrossVibrate.Current.Vibration(new TimeSpan(0, 0, 0, 15));
                    }
                    string uri = "";
                    if (option == "back")
                    {
                        uri = "api/paquete/retroceder";
                    }
                    else if (option == "next")
                    {
                        uri = "api/paquete/avanzar";
                    }
                    else
                    {
                        uri = "api/paquete/entregacliente";
                    }

                    //DisplayAlert("Error", ApiReset.changeStatePack(uri, result.Text, oUser.Id.ToString(), oUser.Token, code), "OK");
                    response res = ApiReset.changeStatePack(uri, result.Text, oUser.Id.ToString(), oUser.Token, code);
                    if (!res.status)
                    {
                        Page("home");
                        DisplayAlert("Error", res.body, "OK");
                        Loader(false);
                    }
                    else
                    {
                        Page("home");
                        DisplayAlert("Listo!", "El paquete abanzo corectamente", "OK");
                        Loader(false);
                    }
                });
            };

            await Navigation.PushAsync(scannerPage);
        }
Exemplo n.º 30
0
        public MiniHacksDetailsPage(MiniHack hack)
        {
            InitializeComponent();
            ItemId = hack.Name;

            _extension = DependencyService.Get <IPlatformSpecificExtension <MiniHack> >();

            BindingContext = vm = new MiniHackDetailsViewModel(hack);

            ButtonFinish.Clicked += ButtonFinish_Clicked;

            if (string.IsNullOrWhiteSpace(hack.GitHubUrl))
            {
                MiniHackDirections1.IsEnabled = false;
                MiniHackDirections1.Text      = "Directions coming soon";
                MiniHackDirections2.IsEnabled = false;
                MiniHackDirections2.Text      = "Directions coming soon";
            }

            scanPage = new ZXingScannerPage(new MobileBarcodeScanningOptions {
                AutoRotate = false,
            })
            {
                DefaultOverlayTopText    = "Align the barcode within the frame",
                DefaultOverlayBottomText = string.Empty
            };

            scanPage.OnScanResult += ScanPage_OnScanResult;


            scanPage.Title = "Scan Code";


            var item = new ToolbarItem
            {
                Text    = "Cancel",
                Command = new Command(async() =>
                {
                    scanPage.IsScanning = false;
                    await Navigation.PopAsync();
                })
            };

            if (Device.OS != TargetPlatform.iOS)
            {
                item.Icon = "toolbar_close.png";
            }

            scanPage.ToolbarItems.Add(item);
        }