SAP Cloud for Customer的Container应用设计原理

简介: 来自Jerry的同事,Yang Joey。相信大部分C4C的UI developer包括我刚开始的时候都会比较好奇我们平时写的javascript代码是如何运行在移动设备上的,同样的,我也对这个问题十分感兴趣。

来自Jerry的同事,Yang Joey。

相信大部分C4C的UI developer包括我刚开始的时候都会比较好奇我们平时写的javascript代码是如何运行在移动设备上的,同样的,我也对这个问题十分感兴趣。于是,以安卓为例子,我把我们发布到安卓应用市场的app解压出来研究了一下。

clipboard1,1

上图是一个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包的结构:

clipboard2,2

上文中讲过, 用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文件。

clipboard3,3

我们打开一个oberon.zip看一看里面的内容,比如我现在打开的是我们开发的RUI client下面的所有javascript代码和样式表文件的目录,library-preload.js就是我们开发的javascript代码压缩之后的合集,其中也包括一些我们会用到的UI5的类库。

clipboard4,4

通过jerry的博客我们得知应用运行时会先加载这个js文件,那么打开这个文件看一下上文提到的oberon.zip等zip里面的代码是如何被加载和运行的。

clipboard5,5

可以看到这里加载了两个js文件,运行了一个app.initialize()方法. 这个方法被定义在加载的第二个js文件js/index.js里面,打开这个index.js文件之后发现的确是这里的initialize 方法加载了sap的UI标准库,主题库,语言等。

clipboard6,6

上文中讲了第一部分中的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:

clipboard7,7

打开一个调用名片扫描插件的文件夹,我们发现与开发的时候文件目录基本一致, /platforms/android/assets/

clipboard8,8

本文来自云栖社区合作伙伴“汪子熙”,了解相关信息可以关注微信公众号"汪子熙"。

相关文章
|
1月前
|
Web App开发 数据采集 前端开发
纯技术讨论:如何让 SAP UI5 应用无法被别人在浏览器里调试 - 这种做法不推荐试读版
纯技术讨论:如何让 SAP UI5 应用无法被别人在浏览器里调试 - 这种做法不推荐试读版
15 0
|
1月前
|
XML 存储 数据格式
SAP UI5 控件 customData 属性的应用介绍
SAP UI5 控件 customData 属性的应用介绍
31 0
|
2月前
|
Web App开发 前端开发 JavaScript
乱花渐欲迷人眼 - 让 SAP UI5 应用的日志输出不再素面朝天
乱花渐欲迷人眼 - 让 SAP UI5 应用的日志输出不再素面朝天
46 0
|
2月前
SAP UI5 应用如何实现类似百度首页一样的访问方式试读版
SAP UI5 应用如何实现类似百度首页一样的访问方式试读版
34 0
|
2月前
让 SAP UI5 应用的日志打印变得五彩缤纷试读版
让 SAP UI5 应用的日志打印变得五彩缤纷试读版
97 2
|
11天前
|
安全 UED 开发者
SAP Commerce Cloud 配置项 refreshWithLock=false 的作用介绍
SAP Commerce Cloud 配置项 refreshWithLock=false 的作用介绍
17 0
|
11天前
|
Java BI API
SAP Cloud for Customer 里如何通过 ABSL 二次开发方式消费 SAP S/4HANA 系统的 API
SAP Cloud for Customer 里如何通过 ABSL 二次开发方式消费 SAP S/4HANA 系统的 API
12 0
|
2月前
|
XML JavaScript 数据格式
SAP UI5 XML Preprocessor 的工作原理和 instructions 指令详解
SAP UI5 XML Preprocessor 的工作原理和 instructions 指令详解
28 0
|
2月前
SAP Fiori Elements 应用里图片字段(Image)的显示原理介绍试读版
SAP Fiori Elements 应用里图片字段(Image)的显示原理介绍试读版
17 0
|
2月前
|
前端开发
SAP UI5 应用如何使用 iframe 嵌入其他 HTML 页面试读版
SAP UI5 应用如何使用 iframe 嵌入其他 HTML 页面试读版
30 0