写点什么

SAP UI5 BarcodeScannerButton 的初始化逻辑 - feature 检测,Cordova API 检测等逻辑

作者:Jerry Wang
  • 2022-11-01
    四川
  • 本文字数:779 字

    阅读完需:约 3 分钟

SAP UI5 BarcodeScannerButton 的初始化逻辑 - feature 检测,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 插件不可用的问题。

发布于: 刚刚阅读数: 4
用户头像

Jerry Wang

关注

🏆InfoQ写作平台-签约作者🏆 2017-12-03 加入

SAP成都研究院开发专家,SAP社区导师,SAP中国技术大使。2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。工作中使用 ABAP, Java, JavaScript 和 TypeScript 进行开发。

评论

发布
暂无评论
SAP UI5 BarcodeScannerButton 的初始化逻辑 - feature 检测,Cordova API 检测等逻辑_前端开发_Jerry Wang_InfoQ写作社区