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:
![SAP|SAP UI5 BarcodeScannerButton 的初始化逻辑 - Cordova API 检测等逻辑](https://img.it610.com/image/info9/b4aaf11f1b80405e90654dff24194a62.jpg)
文章图片
native device capabilities should be by default enabled if there is no feature vector available to restrict the capability.
![SAP|SAP UI5 BarcodeScannerButton 的初始化逻辑 - Cordova API 检测等逻辑](https://img.it610.com/image/info9/da7cafb94de84b6c8906c9d8a18b3bf0.jpg)
文章图片
浏览器里检测不到 cordova API:
![SAP|SAP UI5 BarcodeScannerButton 的初始化逻辑 - Cordova API 检测等逻辑](https://img.it610.com/image/info9/9f9584d6417546f8bea2a9660dbb64d8.jpg)
文章图片
![SAP|SAP UI5 BarcodeScannerButton 的初始化逻辑 - Cordova API 检测等逻辑](https://img.it610.com/image/info9/a049c802f0ef46918fdb5724666ccc7b.jpg)
文章图片
然后尝试获取
ZXingAPI
. 这是一个异步过程。![SAP|SAP UI5 BarcodeScannerButton 的初始化逻辑 - Cordova API 检测等逻辑](https://img.it610.com/image/info9/3f4e8185c01f4d09ade73aeefc2e7c1a.jpg)
文章图片
oZXingScannerAPI
可用。![SAP|SAP UI5 BarcodeScannerButton 的初始化逻辑 - Cordova API 检测等逻辑](https://img.it610.com/image/info9/b2a8ba20bc3740eebc111171a0d86ade.jpg)
文章图片
【SAP|SAP UI5 BarcodeScannerButton 的初始化逻辑 - Cordova API 检测等逻辑】点击 barcode 按钮之后,执行下图第 129 行代码的
scan
方法。如果条码扫描功能不可用,则启动条码扫描过程,显示来自摄像头的实时输入或显示对话框以直接输入值。
条码扫描是异步完成的。 当它被触发时,该函数返回而不等待扫描过程完成。 应用程序必须提供回调函数来对成功扫描、扫描期间的错误以及对话框上的实时输入事件做出反应。
fnSuccess 传递了一个具有文本、格式和取消属性的对象。 text 是条码数据的文本表示,format 是检测到的条码类型,cancel 是用户是否取消扫描。 fnError 给出了错误,fnLiveUpdate 被传递了在对话框的输入字段中输入的新值。
![SAP|SAP UI5 BarcodeScannerButton 的初始化逻辑 - Cordova API 检测等逻辑](https://img.it610.com/image/info9/c2d07d63c6464c5aa919f9fa9866492a.jpg)
文章图片
只有当 CordovaScannerAPI 可用时,才进入 584 行下面的分支:
![SAP|SAP UI5 BarcodeScannerButton 的初始化逻辑 - Cordova API 检测等逻辑](https://img.it610.com/image/info9/b7750db7588c422da22881fedaf8108c.jpg)
文章图片
否则进入 618 行,弹出对话框。
![SAP|SAP UI5 BarcodeScannerButton 的初始化逻辑 - Cordova API 检测等逻辑](https://img.it610.com/image/info9/7022f49e287f457eb44345f9d024c49e.jpg)
文章图片
SAP Fiori Client 是 SAP Fiori 应用程序的原生移动应用程序运行时容器。 SAP Fiori Client 允许用户以在线模式访问其 SAP Fiori 应用程序。后续我会介绍如何在 Fiori client 里解决这个 cordova 插件不可用的问题。
推荐阅读
- 如何使用|如何使用 Chrome 调试运行在手机上的 SAP UI5 Cordova 混合应用试读版
- 不借助|不借助 Fiori client,直接在手机浏览器里调用 SAP UI5 BarcodeScanner 实现条形码扫描的可能性()
- SAP|SAP UI5 BarcodeScannerButton feature 检测,Cordova API 检测等逻辑
- 如何使用|如何使用 Cordova 将 SAP UI5 应用生成一个能在 Android 手机上安装的混合应用试读版
- SAP|SAP UI5 应用开发教程之四十八 - 如何在 SAP UI5 应用里开发条形码扫描功能试读版
- SAP|SAP 电商云 Spartacus UI 和 CPQ Configurable Products 的集成
- 如何在桌面电脑端调试运行在手机上的|如何在桌面电脑端调试运行在手机上的 SAP UI5 应用试读版
- SAP|SAP UI5 应用开发教程之四十七 - 如何自定义 SAP UI5 字符串类型输入字段的校验逻辑试读版
- SAP|SAP S/4HANA Cloud 上 in-app 和 side-by-side 两种扩展方式的介绍
- SAP|SAP CAP 项目 cds watch 生成的 index.html 的模板位置和权限控制