Search code examples
xamarinxamarin.formszxingbarcode-scanner

Xamarin forms Barcode Scanner


I couldn't find any working source of Xamarin forms barcode scanner. Is there any working sample of Xamarin forms barcode scanner using zxing library?


Solution

  • You can try the code below. Add the zxing library/component to all the projects in the solution

    public class Home : ContentPage
    {
        string message = "";
        public Home()
        {
            //Intialize the button
            Button btnScan = new Button
            {
                Text = "Start Scan",
                BackgroundColor = Color.FromRgb(207, 197, 159),
                TextColor = Color.White,
                BorderRadius = 5,
                TranslationY = 120
            };
            //Attach the click event
            btnScan.Clicked += btnScan_Clicked;
    
            this.Content = new StackLayout
            {
                BackgroundColor = Color.FromRgb(150, 172, 135),
                Spacing = 10,
                Padding = 25,
                Children =
                {
                    btnScan
                }
            };
        }
    
        async void btnScan_Clicked(object sender, EventArgs e)
        {
            var scanner = new MobileBarcodeScanner();
            scanner.TopText = "Hold the camera up to the barcode\nAbout 6 inches away";
            scanner.BottomText = "Wait for the barcode to automatically scan!";
    
            //This will start scanning
            ZXing.Result result = await scanner.Scan();
    
            //Show the result returned.
            HandleResult(result);
        }
    
        void HandleResult(ZXing.Result result)
        {
            var msg = "No Barcode!";
            if (result != null)
            {
                msg = "Barcode: " + result.Text + " (" + result.BarcodeFormat + ")";
            }
    
            DisplayAlert("", msg, "Ok");
        }
    }