【发布时间】:2018-01-11 07:25:54
【问题描述】:
我正在使用 Xamarin Forms 和 Prism 为 MVVM 结构开发移动应用程序。 我有一个 TC51 Zebra 设备,我需要拦截条形码扫描事件。 SDK 已正确安装在项目中,但在线示例适用于 Xamarin.Android,而不适用于 Xamarin.Forms。 我不知道如何将扫描的条形码从 Android 项目发送到可移植项目类。
现在我在 MainActivity.cs(Android 项目)中有这个“发送呼叫”:
void scanner_Data(object sender, Scanner.DataEventArgs e)
{
ScanDataCollection scanDataCollection = e.P0;
if ((scanDataCollection != null) && (scanDataCollection.Result == ScannerResults.Success))
{
IList <ScanDataCollection.ScanData> scanData = scanDataCollection.GetScanData();
foreach (ScanDataCollection.ScanData data in scanData)
{
Xamarin.Forms.MessagingCenter.Send<Xamarin.Forms.Application, string>((Xamarin.Forms.Application)Xamarin.Forms.Application.Current, "Barcode", data.Data);
}
}
}
我的 ViewModel(便携式项目)构造函数中的这段代码:
Xamarin.Forms.MessagingCenter.Subscribe<Xamarin.Forms.Application, string>(Xamarin.Forms.Application.Current, "Barcode", (sender, arg) => { _pageDialogService.DisplayAlertAsync("Test Scan", "Data Received: " + arg, "OK"); });
当我尝试读取此页面中的条形码时,应用程序崩溃。
我还有另一个问题:现在我将 SDK 包含在项目中,该应用程序在其他设备上无法运行,它在启动时崩溃。我需要一个单一的应用程序,支持 TC51 Zebra 设备的条码扫描器和其他设备的相机条码扫描,而无需集成条码扫描器硬件。有可能吗?
【问题讨论】:
-
您是否使用 xamarin 表单成功创建了扫描仪应用程序?您能否分享示例代码。我试图在几天内实现同样的目标,但不确定如何将 android 链接到 PCL 或 .Net 标准
-
是的,您可以按照 Alessandro 回答的说明进行操作。另请阅读 cmets。
-
您能否提供一个示例或实现此目的的步骤。我尝试使用 cmets 和代码,但似乎无法正常工作。正如@stezma 所说,如果你能提供一个简单的样本,对其他尝试相同的人真的很有帮助。
标签: c# xamarin.forms prism barcode-scanner