[英]ZXing Scanner not scanning on iOS in Xamarin Forms app
[英]ZXing barcode scanner in Xamarin Forms on iOS doesn't read barcodes
我正在针对Xamarin Forms PCL项目进行开发,该项目针对需要一些基本条形码扫描功能的Android和iOS。
在遵循本教程并参考本指南的情况下,我使用ZXing.Net.Mobile程序包的表单版本启动并运行,它在Android上运行良好。 但是,在iOS上会启动摄像头,但永远不会触发OnScanResult
事件。
我已经在运行多个不同版本(从8.0-10.3到任何版本)的多个iOS设备上对其进行了测试,并充分考虑了我能想到的所有内容,同时还引用了其示例项目。 ZXing.Net.Mobile
和ZXing.Net.Mobile.Forms
nuget软件包已安装在所有项目中。
这是我的扫描器代码,由我主页上的按钮触发触发:
var scanPage = new ZXingScannerPage();
scanPage.OnScanResult += (result) =>
{
scanPage.IsScanning = false;
Device.BeginInvokeOnMainThread(async () =>
{
await Navigation.PopAsync();
await DisplayAlert("Scanned Barcode", result.Text, "OK");
});
};
await Navigation.PushAsync(scanPage);
和AppDelegate.cs:
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
global::Xamarin.Forms.Forms.Init();
global::ZXing.Net.Mobile.Forms.iOS.Platform.Init();
LoadApplication(new App());
return base.FinishedLaunching(app, options);
}
经过两天的奋战,我觉得自己已经走到了尽头。 还有其他人遇到过类似的问题吗? 感谢您的指导!
编辑1
这是单击按钮触发上述代码时的设备日志输出(仅“消息”列)。 打开相机并指向各种条形码时,不会添加任何日志项目。 我在这里看不到任何可疑之处,但也许有人可以呢?
编辑2
我从github存储库中运行了Xamarin Forms PCL示例,并且在iOS上遇到了同样的问题,因为相机可以很好地打开,但是从未读取条形码。 因此,我认为问题一定出在我的Visual Studio和/或Xamarin安装程序上。 我正在稳定的Xamarin频道上运行Visual Studio 2015社区。
add this on ios
protected override void OnAppearing()
{
base.OnAppearing();
qrcode.IsScanning = true;
}`enter code here`
protected override void OnDisappearing()
{
qrcode.IsScanning = false;
base.OnDisappearing();
}
我终于把它作为这个项目的起点。 这只是使用ZXing的基本条形码扫描实现,但无论出于何种原因,我最终都可以在iOS上读取条形码。
这可能是与版本有关的问题,但是我无法缩小范围。
编辑
我在Xamarin论坛上发布了相同的问题: https : //forums.xamarin.com/discussion/comment/272209#Comment_272209
似乎答案已降级为ZXing 2.1.47版。 几个月来我没有对库做任何工作,所以我没有测试新版本。
尝试使用此:
scanPage.IsAnalyzing = true;
IsAnalyzing
与IsScanning
不同。
我和您一样面临同样的问题。 但是在使用IsAnalyzing = true;
它是固定的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.