1. 程式人生 > 其它 >SAP UI5 barcode 控制元件的 feature 檢查探測機制單步除錯 - checkCordovaInIframe

SAP UI5 barcode 控制元件的 feature 檢查探測機制單步除錯 - checkCordovaInIframe

第 170 行 checkCordovaInIframe 是檢測 Cordova API 在 iframe 裡的可用性,這裡可以忽略。

oCordovaScannerAPI 預設為 null.

進入 getFeatureAPI 分支:

這裡試圖從 cordova.plugins.barcodeScanner 獲取 oCordovaScannerAPI.
因為我沒有安裝,所以這個 API 不可用:

進入異常處理函式,進行 getZXingAPI 的 fallback 處理:

Kapsel 是一組外掛,可通過簡化登入到 SMP 3.0 伺服器、OData 呼叫的離線訪問、更新已部署應用程式的能力、加密儲存和推送通知等功能來增強 Apache Cordova。

SAP Fiori Client 圍繞 Apache Cordova 架構設計,其中裝置 API 和自定義功能通過外掛新增。

下表顯示了 SAP Fiori Client 1.8(iOS、Android 和 Windows)中包含的外掛。

如果開發人員使用 SAP Mobile Platform SDK(僅限 iOS 和 Android)隨附的 create_fiori_client.js 指令碼構建自定義 SAP Fiori 客戶端,這些外掛會自動新增到專案中。

要在適用於 Windows 10 的自定義 SAP Fiori 客戶端中使用 Cordova 外掛,您必須在外掛和適用於 Windows 10 的自定義 Fiori 客戶端之間建立一個

API 橋

在 Windows 上,Cordova 應用程式基本上是一個 HTML5 應用程式。 因此,應用程式沒有原生端,並且沒有任何東西在 index.html 層下執行。 外掛中的 Windows 特定程式碼是用 JavaScript 編寫的,並與跨平臺 JavaScript API 作為代理 API 一起初始化。

對於 SAP Fiori 客戶端,index.html 頁面是本機端容器。它包括 cordova.js 並初始化 Cordova 外掛。 index.html 中有一個 webview 元素 (x-ms-webview),它打開了遠端 Fiori 應用程式。

index.html 頁面和遠端 Fiori 應用程式(webview 中的網頁)是兩個完全不同的上下文,具有不同的 DOM 和 視窗”對

。一個上下文無法訪問另一個上下文的名稱空間。因此,無法直接從 webview 訪問本地上下文中先前初始化的外掛。

這個問題在其他平臺上通過將 cordova.js 注入遠端網頁(在主原生 web 檢視中開啟)、初始化 JavaScript Cordova API 並獲得對已經初始化的原生端的訪問來解決。

在 Windows 上將 Cordova 注入遠端 Fiori 應用程式是不可能的,因為出於安全原因,不允許遠端頁面訪問某些 Windows API。這意味著 Fiori 應用程式無法訪問任何 Cordova 外掛。