使用带有 zxing 和 xamarin 表单的自定义渲染器
Using a custom renderer with zxing and xamarin forms
我的 Xamarin Forms 项目设置了每个项目中从 nuget 安装的 zxing。在大多数情况下,应用程序执行它们需要执行的操作(单击按钮时执行 QR 扫描)。
我的问题是我不想要扫描的单独视图,而是通过自定义渲染器将其作为主要 UI 的一部分。
我遇到了一个问题。当我点击触发依赖服务的按钮时,zxing 开始一个新的视图。据我所知,这是正确的行为,那么有没有办法告诉 zxing 它需要使用我的自定义视图作为叠加视图?
您应该将其实现为自定义视图,并为每个平台使用自定义渲染器。 http://developer.xamarin.com/guides/cross-platform/xamarin-forms/custom-renderer/
复制自https://github.com/Redth/ZXing.Net.Mobile
使用 ZXingScanner 视图/片段/控件
在每个平台上,ZXing 扫描器都已实现为可重用组件(视图、片段或控件),并且可以直接使用可重用组件而无需使用 MobileBarcodeScanner class。在每个平台上,view/fragment/control 的实例包含控制扫描仪所需的必要属性和方法。默认情况下,会自动使用默认叠加层,除非您在 view/fragment/control 的实例上设置了 CustomOverlay 属性 和 UseCustomOverlay 属性。您可以在 view/fragment/control 上使用诸如 ToggleTorch() 或 StopScanning() 之类的方法,但是当您准备好视图扫描到开始。如果您想在任何时候取消,您也有责任停止扫描。
每个平台的 view/fragment/control class 是:
- iOS:ZXingScannerView (UIView) - 请参阅 ZXingScannerViewController.cs
查看控制器以获取如何使用此视图的示例 iOS:
AVCaptureScannerView (UIView) - 这相当于 API
ZXingScannerView,但使用了苹果的 AVCaptureSession 元数据引擎
扫描条形码而不是 ZXing.Net。看
AVCaptureScannerViewController.cs查看控制器的例子
如何使用此视图
- Android:ZXingScannerFragment(片段)- 请参阅
ZXingActivity.cs Activity 有关如何使用此片段的示例
- Windows Phone:ZXingScannerControl(用户控件)- 请参阅 ScanPage.xaml
有关如何使用此控件的示例的页面
我的 Xamarin Forms 项目设置了每个项目中从 nuget 安装的 zxing。在大多数情况下,应用程序执行它们需要执行的操作(单击按钮时执行 QR 扫描)。
我的问题是我不想要扫描的单独视图,而是通过自定义渲染器将其作为主要 UI 的一部分。
我遇到了一个问题。当我点击触发依赖服务的按钮时,zxing 开始一个新的视图。据我所知,这是正确的行为,那么有没有办法告诉 zxing 它需要使用我的自定义视图作为叠加视图?
您应该将其实现为自定义视图,并为每个平台使用自定义渲染器。 http://developer.xamarin.com/guides/cross-platform/xamarin-forms/custom-renderer/
复制自https://github.com/Redth/ZXing.Net.Mobile
使用 ZXingScanner 视图/片段/控件
在每个平台上,ZXing 扫描器都已实现为可重用组件(视图、片段或控件),并且可以直接使用可重用组件而无需使用 MobileBarcodeScanner class。在每个平台上,view/fragment/control 的实例包含控制扫描仪所需的必要属性和方法。默认情况下,会自动使用默认叠加层,除非您在 view/fragment/control 的实例上设置了 CustomOverlay 属性 和 UseCustomOverlay 属性。您可以在 view/fragment/control 上使用诸如 ToggleTorch() 或 StopScanning() 之类的方法,但是当您准备好视图扫描到开始。如果您想在任何时候取消,您也有责任停止扫描。
每个平台的 view/fragment/control class 是:
- iOS:ZXingScannerView (UIView) - 请参阅 ZXingScannerViewController.cs 查看控制器以获取如何使用此视图的示例 iOS: AVCaptureScannerView (UIView) - 这相当于 API ZXingScannerView,但使用了苹果的 AVCaptureSession 元数据引擎 扫描条形码而不是 ZXing.Net。看 AVCaptureScannerViewController.cs查看控制器的例子 如何使用此视图
- Android:ZXingScannerFragment(片段)- 请参阅 ZXingActivity.cs Activity 有关如何使用此片段的示例
- Windows Phone:ZXingScannerControl(用户控件)- 请参阅 ScanPage.xaml 有关如何使用此控件的示例的页面