我正在从事一个针对安卓和iOS的Xamarin Forms PCL项目,该项目需要一些基本的条形码扫描功能。
我安装并运行了ZXing.Net.Mobile包的表单版本,遵循本教程和引用本指南,它在安卓上运行得很好。然而,在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表单PCL,在iOS上也遇到了同样的问题,相机开得很好,但从来没有读过条形码。因此,我认为问题一定是在我的Visual和/或Xamarin设置中出现的。我在稳定的Xamarin频道上运行VisualStudio2015社区。
发布于 2017-05-09 16:43:29
发布于 2017-05-03 07:14:44
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();
}发布于 2017-08-23 06:11:18
试着使用以下方法:
scanPage.IsAnalyzing = true;https://stackoverflow.com/questions/43748987
复制相似问题