使用具有zxing和xamarin形式的自定义渲染器

时间:2015-08-04 14:24:40

标签: zxing xamarin.forms

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

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

我遇到了一个问题。当我按下触发依赖服务的按钮时,zxing开始了一个全新的视野。据我所知,这是正确的行为,有没有办法告诉zxing它需要使用我的自定义视图作为叠加视图?

1 个答案:

答案 0 :(得分:2)

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

https://github.com/Redth/ZXing.Net.Mobile

复制

使用ZXingScanner视图/片段/控件

在每个平台上,ZXing扫描程序已实现为可重用的组件(视图,片段或控件),并且可以直接使用可重用组件而无需使用MobileBarcodeScanner类。在每个平台上,视图/片段/控件的实例包含控制扫描程序所需的必要属性和方法。默认情况下,默认覆盖是自动使用的,除非您在view / fragment / control的实例上设置CustomOverlay属性以及UseCustomOverlay属性。您可以在视图/片段/控件上使用诸如ToggleTorch()或StopScanning()之类的方法,但是当您准备好视图时,您负责使用回调和MobileBarcodeScanningOptions实例调用StartScanning(...)。 ;扫描开始。如果您想在任何时候取消,您还有责任停止扫描。

每个平台的视图/片段/控件类是:

  • iOS:ZXingScannerView(UIView) - 请参阅ZXingScannerViewController.cs 查看Controller以获取如何使用此视图iOS的示例: AVCaptureScannerView(UIView) - 这是API的等价物 ZXingScannerView,但使用Apple的AVCaptureSession元数据引擎 扫描条形码而不是ZXing.Net。看到 AVCaptureScannerViewController.cs以View Controller为例 如何使用此视图
  • Android:ZXingScannerFragment(Fragment) - 请参阅 ZXingActivity.cs活动,以获取如何使用此片段的示例
  • Windows Phone:ZXingScannerControl(UserControl) - 请参阅ScanPage.xaml 有关如何使用此控件的示例页面