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 插件不可用的问题。
相关文章
- 163. 通过一个实际例子,讲解 SAP UI5 Compatibility Version 的概念和运行时绑定解析器的选择逻辑
- SAP UI5 按钮的类型和背景色设置例子
- SAP UI5 manifest.json 和 i18n 多语言文本的解析逻辑
- 使用 SAP WebIDE 将SAP UI5 应用部署到 SAP ABAP Netweaver 服务器上
- 深入学习SAP UI5框架代码系列之四:SAP UI5控件的元数据实现
- SAP Fiori里Contact Support的按钮渲染逻辑
- 一种在标准的SAP UI5方法里注入新逻辑的办法
- SAP UI5 XML view lifecycle processing - defineMasterHeaderFooter
- SAP UI5 formatter的原理和调试截图-当UI字段没有值显示时怎么办
- SAP 前端技术的演化史简介
- SAP Gateway OData服务的语言决定逻辑 - language determination
- SAP CRM Business Partner 自动决定Determination的执行逻辑
- 在SAP CRM呼叫中心的搜索结果点击Edit按钮后的处理逻辑
- 如何在ABAP Development Tool里只显示能在SAP云平台上使用的ABAP资源
- SAP CRM中间件Material Sales Organization和distribution channel的映射逻辑
- SAP CDS view生成的OData服务对CRUD(增删改查)的支持
- SAP CRM WebClient UI上UI标签文本的显示逻辑
- SAP CRM WebClient UI element id的生成逻辑
- SAP CRM IBASE structure的读取逻辑
- SAP CRM WebClient UI上note下拉列表里类型的过滤逻辑
- SAP ABAP RFC table administration
- SAP 电商云 Spartacus UI 点了 Shipping Method 之后的执行逻辑
- SAP Spartacus cost center list class的赋值逻辑
- SAP Spartacus 关于列表点击focus Accessibility的需求
- SAP Spartacus加载delivery国家列表的处理逻辑
- 打印SAP CRM relationship STRSET的业务数据
- SAP Cloud for Customer upselling的前台实现
- SAP Cloud for Customer前端url里的一长串base64code是在哪里根据什么逻辑计算的
- SAP Commerce Cloud B2C Accelerator 架构设计概述
- SAP Hybris Enterprise Commerce Platform ECP和SAP CRM架构比较
- SAP UI5 应用在 Business Application Studio 里的构建单步分析
- SAP Commerce Cloud Product Review 的添加逻辑
- 关于 SAP UI5 应用 ui5.yaml 里的 paths 映射问题
- SAP Fiori SSL 和 SAML 2.0 配置文档
- SAP UI5 应用 XML 视图的加载逻辑分析
- SAP UI5自学教程一:button.js的加载逻辑
- SAP云平台对Kubernetes的支持
- Service Broker in SAP Gateway and Kubernetes
- 35. 如何自行查找出 SAP ABAP 标准的 OData 服务返回数据的后台数据库表和表字段名称