SAP Cloud for Customer的Container應用設計原理
來自Jerry的同事,Yang Joey。
相信大部分C4C的UI developer包括我剛開始的時候都會比較好奇我們平時寫的javascript程式碼是如何執行在移動裝置上的,同樣的,我也對這個問題十分感興趣。於是,以安卓為例子,我把我們釋出到安卓應用市場的app解壓出來研究了一下。
上圖是一個cordova的總體框架的描述,可以看到cordova主要由兩部分構成。
第一部分:Cordova Application是Cordova框架獨立於不同手機作業系統的一個封裝層。具體包括
1)Web app(包括具體的app的HTML/JS/CSS程式碼等);
2)Cordova框架已經封裝好的核心外掛(如相機、儲存等系統呼叫),這塊是Cordova的核心部分。當然,開發者也可以基於它的外掛體系,擴充套件出新的外掛;
第二部分:Mobile OS就是具體的手機作業系統層了,Cordova目前支援大部分的手機OS:ios、android、wp、blackberry等等
第二部分我們在這裡就不贅述,都是mobile OS的各種原生功能。
那麼我們先來看第一部分的webapp這一部分,我們將下載下來的apk檔案解壓縮,如下所示是一個很經典的安卓app的apk包的結構:
上文中講過, 用Cordova工具將C4C Aurora的專案檔案打包成Android或者iOS原生應用後,以Android平臺為例,客戶安裝apk在安卓裝置上後,執行在安卓手機上的C4C應用實際執行在WebView中。
WebView里載入的JavaScript和HTML檔案實際上已經儲存在了Cordova構建出來的專案包(即apk檔案)裡。在執行時,這些資原始檔透過Embedded server載入到WebView裡。
當然,手機C4C應用上所有需要顯示的Transaction資料,比如在手機C4C應用上開啟Account工作中心,看到的所有Account資料都來自對應的C4C tenant,這些資料的讀取請求透過embedded Server傳送到C4C tenant的後臺 ABAP系統上去。
Jerry在部落格( https://blogs.sap.com/2017/08/17/step-by-step-to-package-a-fiori-application-into-your-android-device-using-cordova/)中有寫到如何用cordova建立一個fiori 風格app, 文中有講到我們在開發這樣一個app的時候會有一個預設的index.js生成,我們基於這個檔案為入口進行開發cordova的應用,我們在assets->www下面找到了這個index.js檔案,同時我們看到了幾個zip包,這幾個zip分別來自我們C4C開發組所開發的oberon和lead cod,裡面包含了我們開發的javascript程式碼和樣式表檔案,這些檔案即是上文提到的儲存在cordova構建出來的專案包裡的程式碼和html檔案。
我們開啟一個oberon.zip看一看裡面的內容,比如我現在開啟的是我們開發的RUI client下面的所有javascript程式碼和樣式表檔案的目錄,library-preload.js就是我們開發的javascript程式碼壓縮之後的合集,其中也包括一些我們會用到的UI5的類庫。
透過jerry的部落格我們得知應用執行時會先載入這個js檔案,那麼開啟這個檔案看一下上文提到的oberon.zip等zip裡面的程式碼是如何被載入和執行的。
可以看到這裡載入了兩個js檔案,執行了一個app.initialize()方法. 這個方法被定義在載入的第二個js檔案js/index.js裡面,開啟這個index.js檔案之後發現的確是這裡的initialize 方法載入了sap的UI標準庫,主題庫,語言等。
上文中講了第一部分中的webapp,那麼我們來看看開發者自己開發的外掛這一部分,在Jerry的部落格中有寫到如何用java開發一個自定義的cordova外掛: https://blogs.sap.com/2017/08/18/step-by-step-to-create-a-custom-cordova-plugin-for-android-and-consume-it-in-your-ui5-application/,文中有提到我們如何在UI5的application中去呼叫我們開發的cordova外掛,我們在這個解壓出來的包裡面也可以看到這些去消費外掛的這些js class:
開啟一個呼叫名片掃描外掛的資料夾,我們發現與開發的時候檔案目錄基本一致, /platforms/android/assets/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2654262/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 機器學習在SAP Cloud for Customer中的應用機器學習Cloud
- SAP Cloud for Customer Extensibility的設計與實現Cloud
- SAP Cloud for Customer裡一個Promise的實際應用場合CloudPromise
- SAP CRM,Cloud for Customer和Fiori應用的direct navigation比較CloudNavigation
- SAP Cloud for Customer的前世今生Cloud
- SAP Cloud for Customer Price-計價簡介Cloud
- SAP Cloud for Customer Rule Editor的使用方法和底層工作原理Cloud
- SAP Cloud for Customer裡新的Lead UI對Mashup整合的支援原理CloudUI
- SAP Cloud for Customer Account和individual customer的區別Cloud
- 自開發Web應用和SAP Customer Data Cloud Identity服務的整合WebCloudIDE
- 如何使用SAP Cloud for Customer裡的Data SourceCloud
- SAP 電商雲 Spartacus UI 同 SAP Customer Data Cloud 的整合UICloud
- SAP Cloud for Customer的CTI呼叫中心解決方案Cloud
- SAP Cloud for Customer的Mashup位於CustomPane裡Cloud
- SAP Cloud for Customer ABSL的一些優化Cloud優化
- SAP Cloud for Customer框架是如何使用JavaScript Promise的Cloud框架JavaScriptPromise
- 使用soapUI消費SAP Cloud for Customer的web serviceUICloudWeb
- SAP Cloud for Customer的Account Team裡的role如何配置Cloud
- SAP Cloud for Customer裡BusinessPartner, Customer和Employee這些BO的區別Cloud
- SAP Cloud for Customer和SAP Fiori系統裡的OData測試工具Cloud
- SAP CRM和Cloud for Customer的擴充套件欄位後設資料Cloud套件
- 如何把SAP Kyma和SAP Cloud for Customer連線起來Cloud
- SAP Cloud for Customer 標準培訓課程Cloud
- SAP Analytics Cloud和Cloud for Customer之間的Single Sign on配置Cloud
- 如何查詢SAP Cloud for Customer UI頁面對應的技術模型明細CloudUI模型
- SAP Cloud for Customer客戶主資料的地圖整合Cloud地圖
- SAP Cloud for Customer裡Sales Order和Sales Quote的建模方式Cloud
- 使用nodejs消費SAP Cloud for Customer上的Web serviceNodeJSCloudWeb
- SAP UI5 應用裡 FlexBox 控制元件的設計原理UIFlex控制元件
- SAP 電商雲 Spartacus UI 同 SAP Customer Data Cloud 整合執行時的 apiUICloudAPI
- SAP Commerce Cloud 新一代 UI Spartacus 和 Customer Data cloud 的整合CloudUI
- 使用Excel匯入資料到SAP Cloud for Customer系統ExcelCloud
- SAP CRM和Cloud for Customer中的Event handler(事件處理器)Cloud事件
- SAP Cloud for Customer銷售訂單External Note的建模細節Cloud
- SAP Cloud for Customer Cloud(C4C)Application Studio裡的程式碼除錯CloudAPP除錯
- API介面:原理、設計與應用API
- SAP Cloud for Customer 如何直接消費S/4HANA APICloudAPI
- SAP Cloud for Customer(C4C)和微信整合系列教程Cloud