首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ZXing条形码扫描器在iOS上的Xamarin窗体不读取条形码

ZXing条形码扫描器在iOS上的Xamarin窗体不读取条形码
EN

Stack Overflow用户
提问于 2017-05-02 23:57:49
回答 4查看 3.7K关注 0票数 1

我正在从事一个针对安卓和iOS的Xamarin Forms PCL项目,该项目需要一些基本的条形码扫描功能。

我安装并运行了ZXing.Net.Mobile包的表单版本,遵循本教程和引用本指南,它在安卓上运行得很好。然而,在iOS上,相机出现了,但OnScanResult事件从未被触发。

我已经在几个运行不同版本(从8.0到10.3之间)的iOS设备上测试了它,并修改了我所能想到的一切,并引用了它们的示例项目。在所有项目中都安装了ZXing.Net.MobileZXing.Net.Mobile.Forms nuget包。

这是我的扫描器代码,它是在我的主页上按下按钮触发的:

代码语言:javascript
复制
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:

代码语言:javascript
复制
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:异体AVCaptureVideoPreviewLayer为14.14ms。
  • AppleH4CamIn::power_on_hardware
  • AppleH4CamIn::ISP_SelectBestMIPIFrequencyIndex_gated -通道: 0,索引:0
  • StartScanning
  • AppleH4CamIn::setPowerStateGated: 1
  • ZXingScannerView.Setup()为0.167 ms。
  • ASL发件人统计
  • AppleH4CamIn::ISP_FlushInactiveDARTMappings: 0x00000000
  • AppleH4CamIn::ISP_SelectBestMIPIFrequencyIndex_gated -通道: 0,索引:0

编辑2

我从github回购上运行了示例Xamarin表单PCL,在iOS上也遇到了同样的问题,相机开得很好,但从来没有读过条形码。因此,我认为问题一定是在我的Visual和/或Xamarin设置中出现的。我在稳定的Xamarin频道上运行VisualStudio2015社区。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-05-09 16:43:29

我终于让它以这个项目作为起点。这只是一个使用ZXing进行条形码扫描的基本实现,但无论出于什么原因,我最终都可以在iOS上读取条形码。

这可能是一个版本相关的问题,但我无法缩小范围。

编辑

我在272209论坛上发布了同样的问题

答案似乎是将ZXing版本下调为2.1.47。我已经有几个月没有使用这个库做任何工作了,所以我没有测试新版本。

票数 0
EN

Stack Overflow用户

发布于 2017-05-03 07:14:44

代码语言:javascript
复制
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();

        }
票数 0
EN

Stack Overflow用户

发布于 2017-08-23 06:11:18

试着使用以下方法:

代码语言:javascript
复制
scanPage.IsAnalyzing = true;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43748987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档