zxing - 将自定义渲染器与 zxing 和 xamarin 表单一起使用

标签 zxing xamarin.forms

我已经设置了我的 Xamarin Forms 项目,并在每个项目中从 nuget 安装了 zxing。在大多数情况下,应用程序会执行它们需要执行的操作(单击按钮时执行 QR 扫描)。

我的问题是,我不需要单独的扫描 View ,而是通过自定义渲染器将其作为我的主 UI 的一部分。

我遇到了一个问题。当我点击触发依赖服务的按钮时,zxing 会启动一个新 View 。据我所知,这是正确的行为,那么有没有办法告诉 zxing 它需要使用我的自定义 View 作为覆盖 View ?

最佳答案

您应该将其实现为具有针对每个平台的自定义渲染器的自定义 View 。 http://developer.xamarin.com/guides/cross-platform/xamarin-forms/custom-renderer/

复制自 https://github.com/Redth/ZXing.Net.Mobile

使用 ZXingScanner View /片段/控件

在每个平台上,ZXing 扫描仪都被实现为可重用组件( View 、片段或控件),并且可以直接使用可重用组件,而根本不需要使用 MobileBarcodeScanner 类。在每个平台上, View /片段/控件的实例包含控制扫描仪所需的必要属性和方法。默认情况下,除非您在 View /片段/控件的实例上设置 CustomOverlay 属性以及 UseCustomOverlay 属性,否则会自动使用默认叠加层。您可以在 View /片段/控件上使用 ToggleTorch() 或 StopScanning() 等方法,但是,当您准备好扫描 View 时,您有责任使用回调和 MobileBarcodeScanningOptions 实例调用 StartScanning(...)开始。如果您想随时取消,您还有责任停止扫描。

每个平台的 View /片段/控制类是:

  • iOS:ZXingScannerView (UIView) - 请参阅 ZXingScannerViewController.cs View Controller 有关如何使用此 View iOS 的示例: AVCaptureScannerView (UIView) - 这是相当于 API ZXingScannerView,但使用Apple的AVCaptureSession元数据引擎 扫描条形码而不是ZXing.Net。看 AVCaptureScannerViewController.cs View Controller 的示例 如何使用此 View
  • Android:ZXingScannerFragment(片段)- 请参阅 ZXingActivity.cs Activity 有关如何使用此片段的示例
  • Windows Phone:ZXingScannerControl (UserControl) - 请参阅 ScanPage.xaml 有关如何使用此控件的示例的页面

关于zxing - 将自定义渲染器与 zxing 和 xamarin 表单一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31811946/

相关文章:

xamarin - 错误 CS1926 : Error opening Win32 manifest file

c# - 从 Xamarin 中的代码推送新页面后如何旋转屏幕

java - 使用 zxing/barcode4j 格式化 EAN8

java - 在 WebView Android 中扫描条码

java - com.google.zxing.NotFoundException 核心java程序执行时出现异常?

c# - 我如何创建两个部分来重点关注和其他部分进行写作?

android - 扫描二维码并显示它及其值(value)

android - 如何在 Android 中显示来自字符串的一维条形码?

c# - 图像 TapGestureRecognizer 未在 Xamarin 中触发

xamarin - 如何打开对话框来浏览Xamarin.Forms中的文件?