我在Xamarin工作表单PCL项目针对Android和iOS设备上需要一些基本的条形码扫描功能。斑马线条形码扫描器无法读取条形码
我得到的东西了,并与形式的版本ZXing.Net.Mobile包的下面this tutorial和引用this guide运行,它在Android上的伟大工程。然而,iOS上的摄像头出现,但OnScanResult
事件从来没有发射。
我测试过它上运行多个不同版本的几个iOS设备(从8.0的任何地方 - 10.3),并与所有我能想到的拨弄,引用他们的样本项目,以及。 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
这里的设备日志输出(消息列仅)点击按钮时触发上面的代码。摄像机打开并指向各种条形码时,不会添加任何日志项目。我在这里没有看到任何可疑的东西,但也许其他人呢?
- PERF:Alloc AVCaptureVideoPreviewLayer花了14.14毫秒。
- AppleH4CamIn :: power_on_hardware
- AppleH4CamIn :: ISP_SelectBestMIPIFrequencyIndex_gated - 信道:0,指数:0
- StartScanning
- AppleH4CamIn :: setPowerStateGated:1
- ZXingScannerView.Setup()把0.167毫秒。
- ASL发件人统计
- AppleH4CamIn :: ISP_FlushInactiveDARTMappings:00000000
- AppleH4CamIn :: ISP_SelectBestMIPIFrequencyIndex_gated - 信道:0,指数:0
编辑2
我跑的样品Xamarin形式PCL从github repo时遇到iOS上同样的问题与摄像机开孔罚款,但没有条形码读过。因此,我认为这个问题必须与我的Visual Studio和/或Xamarin设置。我在稳定的Xamarin频道上运行Visual Studio 2015社区。
实际上是否使用调试器来验证OnScanResult没有被调用,或者只是依靠警报/导航告诉你? – Jason
我已经通过它了,我没有看到它被调用。我还在运行时启动设备日志,并且一切看起来都不错,没有错误触发。 –