【问题标题】:Win RT - universal app with barcode scannerWin RT - 带有条码扫描器的通用应用程序
【发布时间】:2014-09-03 10:33:52
【问题描述】:

我正在为 Windows 8.1 和 Windows Phone 8.1 开发一个通用应用程序,我希望它能够扫描条形码。对于 Windows 8.1,存在一个原生类 BarcodeScanner,不幸的是 Windows Phone 8.1 无法访问它(我真的不明白是什么导致微软这样做)。我找到了一个名为 zxing 的第 3 方解决方案,但here 我读到它非常适用于通用应用程序。在通用应用中实现条形码扫描功能的最佳方式是什么?

谢谢!

【问题讨论】:

  • 直到微软最终将 WP 和 WinRT 合并(据说在 Win10 中),API 上才会有差异。
  • 使用蓝牙扫描仪。
  • 不要创建通用应用。单独构建应用程序并通过类库或其他方式共享尽可能多的代码。
  • windows 手机还内置了条码扫描器 - 因为您可以直接从手机搜索按钮使用它 - 至少用于扫描 QR 码 - 所以它可以作为 api 公开是有道理的在某处打电话。
  • 您可能想要查看BrokeredPointOfService,它是 .NET 的 POS 和 WinRT 之间的某种桥梁 - 可以替代使用 Windows.Devices.PointOfService API 方法。虽然我对它不够熟悉,不知道它是否适用于 Windows Phone。

标签: c# windows-runtime windows-8.1 windows-phone-8.1 win-universal-app


【解决方案1】:

我只会使用一个文本框。大多数条码扫描仪将充当键盘,扫描后将发送回车键输入。如果您的文本框侦听 key up 事件并检查 enter 键,您将知道扫描何时完成。我个人不会使用服务点。它来自旧版本的 .NET,根据我的经验,它甚至不适用于桌面应用程序。这就是我的样子。

private void TextBox1_KeyUp(object sender, KeyEventArgs e)
    {
        if (e.Key == Key.Enter)
        {
            this.MyFunction(this.TextBox1.Text);
        }
    }

这样做的好处是,如果需要,程序可以在没有条形码扫描仪的情况下运行。用户只需输入数字并回车即可。缺点是需要选择文本框才能让程序接收输入。为了减少或消除用户必须一直选择文本框的情况,您可以使用this.TextBox1.Focus() 设置焦点。

【讨论】:

  • 这就是我们使用 Win8.1 应用程序所做的事情。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-21
  • 2013-01-10
  • 2020-12-22
相关资源
最近更新 更多