我们在javascript中直接使用Windows.Devices.PointOfService
API在两个不同的Windows 10移动设备上操作条形码扫描程序。
在两台设备上,我们都可以成功启用,禁用和软启动并停止扫描引擎。但是,似乎setActiveSymbologiesAsync不会通过javascript执行任何操作。它适用于 .NET / C#API 。
每个设备仅扫描看似默认的一组符号系统。
有人有经验吗?
我这样称呼它:
var syms = [ Windows.Devices.PointOfService.BarcodeSymbologies.code128 ];
claimedScanner.setActiveSymbologiesAsync(syms);
答案 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
。
我没有条形码扫描仪可以自己测试解决方法。如果有效,请告诉我。