tellBarcodeScanner.SetActiveSymbologiesAsync的javascript实现是否有效?

时间:2016-05-11 12:55:23

标签: javascript win-universal-app barcode-scanner windows-10-universal

我们在javascript中直接使用Windows.Devices.PointOfService API在两个不同的Windows 10移动设备上操作条形码扫描程序。

在两台设备上,我们都可以成功启用,禁用和软启动并停止扫描引擎。但是,似乎setActiveSymbologiesAsync不会通过javascript执行任何操作。它适用于 .NET / C#API

每个设备仅扫描看似默认的一组符号系统。

有人有经验吗?

我这样称呼它:

var syms = [ Windows.Devices.PointOfService.BarcodeSymbologies.code128 ];
claimedScanner.setActiveSymbologiesAsync(syms);

1 个答案:

答案 0 :(得分:-1)

问题是JavaScript数组不灵活,而像setActiveSymbologiesAsync这样的方法会错误地处理它们。 (PointOfService命名空间中还有其他方法存在同样的问题。基本上,查找异步并接受字符串数组的方法。)

感谢您报告错误。该团队告诉我,修复程序有望在周年纪念更新中修复。在此之前,您可以尝试这种解决方法:

function createAgileStringArray() {
    var contact = new Windows.ApplicationModel.Contacts.Contact();
    return contact.dataSuppliers;
}

var syms = createAgileStringArray();
syms.push(Windows.Devices.PointOfService.BarcodeSymbologies.code128);
claimedScanner.setActiveSymbologiesAsync(syms);

基本上,我们创建一个虚拟联系人,不是因为我们实际关心联系人,而只是因为我们可以重新调整随附的敏捷字符串数组:dataSuppliers

我没有条形码扫描仪可以自己测试解决方法。如果有效,请告诉我。