我们使用ZXING库扫描条形码中的xamarin表单应用程序及其工作正常 .

但现在正在 issue with barcode - code128 format as its not scanning the bar codes (content length - 19 char ) . 附加条形码供参考 .

enter image description here

我们使用Zxing版本 - 2.4.1(最新稳定版) .

我们使用了以下代码,但它不适用于Android和iOS平台 .

请建议/提供解决问题的意见 .

private void Btn_BarcodeClicked(object sender, EventArgs e)
    {
        try
        {
            var options = new ZXing.Mobile.MobileBarcodeScanningOptions();
            options.PossibleFormats = new List<ZXing.BarcodeFormat>() {
                ZXing.BarcodeFormat.CODE_39,
                ZXing.BarcodeFormat.CODE_93,
                ZXing.BarcodeFormat.CODE_128,
                ZXing.BarcodeFormat.EAN_13,
                ZXing.BarcodeFormat.QR_CODE
            };
            options.TryHarder = false;
            options.BuildBarcodeReader().Options.AllowedLengths = new[] { 44 };

            var scanPage = new ZXingScannerPage(options);
            scanPage.DefaultOverlayTopText = "";
            scanPage.DefaultOverlayBottomText = "";
            scanPage.AutoFocus();
            ToolbarItem toolbarItem = new ToolbarItem();
            toolbarItem.Text = "Flash ON";
            toolbarItem.Clicked += (s, ex) =>
            {
                try
                {
                    toolbarItem.Text = "Flash " + (toolbarItem.Text == "Flash ON" ? "OFF" : "ON");
                    //if (scanPage.HasTorch)
                    scanPage.ToggleTorch();
                }
                catch (Exception exx)
                {
                }
            };
            scanPage.ToolbarItems.Add(toolbarItem);
            TimeSpan ts = new TimeSpan(0, 0, 0, 1, 0);
            Device.StartTimer(ts, () =>
            {
                if (scanPage.IsScanning)
                    scanPage.AutoFocus();
                return scanPage.IsScanning;
            });
            scanPage.OnScanResult += (result) =>
            {
                scanPage.IsScanning = false;
                Device.BeginInvokeOnMainThread(async () =>
                {
                    await DisplayAlert("Alert", result.Text, "Ok");
                });
            };
            Navigation.PushAsync(scanPage);
        }
        catch (Exception ex)
        {

        }
    }