SAP UI5 BarcodeScannerButton 的初始化邏輯 - feature 檢測,Cordova API 檢測等邏輯
小編:管理員 133閱讀 2022.09.13
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 插件不可用的問題。
相關推薦
- Cordova 什么是Cordova? Cordova是用于使用HTML,CSS和JS構建移動應用的平臺。我們可以認為Cordova是一個容器,用于將我們的網絡應用程序與本機移動功能連接。默認情況下,Web應用程序不能使用本機移動功能。這就是Cordova進來的地方。它為網絡應用和移動設備之間的連…
- Hibernate Criterion 在查詢方法設計上能夠靈活的依據Criteria的特點來方便地進行查詢條件的組裝.Hibernate設計了CriteriaSpecification作為Criteria的父接口,以下提供了Criteria和DetachedCriteria.Criteria和DetachedCriteria的主要差別在于創建的形式不一樣,Criteria是在線的,所…