乐趣区

关于sap:SAP-UI5-BarcodeScannerButton-的初始化逻辑-Cordova-API-检测等逻辑

sap.ndc.BarcodeScannerButton:用于启动条码扫描过程的按钮控件(显示条码图标)。如果本机扫描性能不可用或未授予相机性能,则该按钮要么被暗藏,要么通过关上带有输出字段的对话框来提供后备,能够在其中手动输出条形码。BarcodeScanner 被加载之后,执行 init 办法:

    //    * Feature vector (sap.Settings.isFeatureEnabled) is available
    //  * Barcode scanner is enabled by the Feature Vector
    //  * Barcode scanner Cordova plug-in (cordova.plugins.barcodeScanner) or zxing-js (ZXing.BrowserMultiFormatReader) is available

available 属性默认为 true:

native device capabilities should be by default enabled if there is no feature vector available to restrict the capability.

浏览器里检测不到 cordova API:

而后尝试获取 ZXingAPI. 这是一个异步过程。

oZXingScannerAPI 可用。

点击 barcode 按钮之后,执行下图第 129 行代码的 scan 办法。

如果条码扫描性能不可用,则启动条码扫描过程,显示来自摄像头的实时输出或显示对话框以间接输出值。

条码扫描是异步实现的。当它被触发时,该函数返回而不期待扫描过程实现。应用程序必须提供回调函数来对胜利扫描、扫描期间的谬误以及对话框上的实时输出事件做出反馈。

fnSuccess 传递了一个具备文本、格局和勾销属性的对象。text 是条码数据的文本示意,format 是检测到的条码类型,cancel 是用户是否勾销扫描。fnError 给出了谬误,fnLiveUpdate 被传递了在对话框的输出字段中输出的新值。

只有当 CordovaScannerAPI 可用时,才进入 584 行上面的分支:

否则进入 618 行,弹出对话框。

SAP Fiori Client 是 SAP Fiori 应用程序的原生挪动利用程序运行时容器。SAP Fiori Client 容许用户以在线模式拜访其 SAP Fiori 应用程序。后续我会介绍如何在 Fiori client 里解决这个 cordova 插件不可用的问题。

退出移动版