ZXing.net.mobile 查看无法扫描条码
ZXing.net.mobile view can't scan barcodes
更新:这是一个硬件问题。它适用于较新的 phone。
向项目添加了 ZXing.Net.Mobile
和 ZXing.Net.Mobile.Forms
。
扫描仪视图和相机看起来不错。闪光按钮有效。但是 OnScanResult
从未被提出。尝试了各种 DataMatrix、PDF417 和 QR 码。
测试phone是HTC M9。
ScannerPage.xaml
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:zxing="clr-namespace:ZXing.Net.Mobile.Forms;assembly=ZXing.Net.Mobile.Forms"
x:Class="MyApp.ScannerPage">
<ContentPage.Content>
<Grid VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand">
<zxing:ZXingScannerView
x:Name="ScannerView"/>
<zxing:ZXingDefaultOverlay
x:Name="ScannerOverlay"
TopText="Hold your phone up to the barcode"
BottomText="Scanning will happen automatically"/>
</Grid>
</ContentPage.Content>
</ContentPage>
ScannerPage.xaml.cs
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class ScannerPage : ContentPage
{
public ScannerPage()
{
InitializeComponent();
ScannerView.Options = new ZXing.Mobile.MobileBarcodeScanningOptions
{
PossibleFormats = new List<BarcodeFormat>
{
BarcodeFormat.DATA_MATRIX,
BarcodeFormat.PDF_417,
BarcodeFormat.QR_CODE
},
TryHarder = true
};
ScannerView.OnScanResult += (result) =>
{
var x = 3; // Breakpoint here, never hit
Device.BeginInvokeOnMainThread(async () =>
{
// Stop analysis until we navigate away so we don't keep reading barcodes
//ScannerView.IsAnalyzing = false;
// Show an alert
await DisplayAlert("Scanned Barcode", result.Text, "OK");
});
};
ScannerOverlay.ShowFlashButton = ScannerView.HasTorch;
ScannerOverlay.FlashButtonClicked += (se, ev) => ScannerView.ToggleTorch();
}
protected override void OnAppearing()
{
base.OnAppearing();
ScannerView.IsAnalyzing = true;
ScannerView.IsScanning = true;
}
protected override void OnDisappearing()
{
base.OnDisappearing();
ScannerView.IsScanning = false;
}
}
可能是硬件问题..低分辨率相机?尝试使用更新的智能手机...
您也可以尝试使用 "simplest" 条形码(code128、ean8、ean13...)
更新:这是一个硬件问题。它适用于较新的 phone。
向项目添加了 ZXing.Net.Mobile
和 ZXing.Net.Mobile.Forms
。
扫描仪视图和相机看起来不错。闪光按钮有效。但是 OnScanResult
从未被提出。尝试了各种 DataMatrix、PDF417 和 QR 码。
测试phone是HTC M9。
ScannerPage.xaml
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:zxing="clr-namespace:ZXing.Net.Mobile.Forms;assembly=ZXing.Net.Mobile.Forms"
x:Class="MyApp.ScannerPage">
<ContentPage.Content>
<Grid VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand">
<zxing:ZXingScannerView
x:Name="ScannerView"/>
<zxing:ZXingDefaultOverlay
x:Name="ScannerOverlay"
TopText="Hold your phone up to the barcode"
BottomText="Scanning will happen automatically"/>
</Grid>
</ContentPage.Content>
</ContentPage>
ScannerPage.xaml.cs
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class ScannerPage : ContentPage
{
public ScannerPage()
{
InitializeComponent();
ScannerView.Options = new ZXing.Mobile.MobileBarcodeScanningOptions
{
PossibleFormats = new List<BarcodeFormat>
{
BarcodeFormat.DATA_MATRIX,
BarcodeFormat.PDF_417,
BarcodeFormat.QR_CODE
},
TryHarder = true
};
ScannerView.OnScanResult += (result) =>
{
var x = 3; // Breakpoint here, never hit
Device.BeginInvokeOnMainThread(async () =>
{
// Stop analysis until we navigate away so we don't keep reading barcodes
//ScannerView.IsAnalyzing = false;
// Show an alert
await DisplayAlert("Scanned Barcode", result.Text, "OK");
});
};
ScannerOverlay.ShowFlashButton = ScannerView.HasTorch;
ScannerOverlay.FlashButtonClicked += (se, ev) => ScannerView.ToggleTorch();
}
protected override void OnAppearing()
{
base.OnAppearing();
ScannerView.IsAnalyzing = true;
ScannerView.IsScanning = true;
}
protected override void OnDisappearing()
{
base.OnDisappearing();
ScannerView.IsScanning = false;
}
}
可能是硬件问题..低分辨率相机?尝试使用更新的智能手机...
您也可以尝试使用 "simplest" 条形码(code128、ean8、ean13...)