我们使用ZXING库扫描xamarin表单应用程序的条形码及其正常工作。
但是现在有带有条形码-code128格式的问题,因为它不扫描条形码(内容长度-19个字符)。随附条形码以供参考。
我们使用的是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)
{
}
}