SMP3.0支持的Mobile Application类型有:
Native Apps,原生应用
Hybrid Apps,混合应用
Mobile Web Apps,纯Web的应用
MDD Apps,即元数据驱动(Syclo)。
你的移动应用到底该选择哪一种类型呢?看下图这个决策树吧:
<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124608-72.jpg" alt="SMP3.0学习笔记之三使用ODataSDK或者MAFLogin组件进行OnBoarding” />
顺道提一下,SMP后端不仅可以通过Netweaver
Gateway支持SAP
ECC,还可以通过Gateway
Java(Avatar?)连接第三方数据源,如下图所示:
<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124608-25.jpg" alt="SMP3.0学习笔记之三使用ODataSDK或者MAFLogin组件进行OnBoarding” />
首先我学习的是使用SMP
OData SDK开发 Native Mobile Apps。从下图可以看出,SMP OData SDK不仅仅是一个OData
SDK,而且包含了很多已经Ready的组件,例如:
RequestManager
BaseRequest
BatchRequest
INetListener
Parser
Cache
等等。这些组件的功能后续会用到,这里我们暂且不表。
<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124608-100.jpg" alt="SMP3.0学习笔记之三使用ODataSDK或者MAFLogin组件进行OnBoarding” />
而MAF, Mobile Application
Framework,是一系列UI组件,方便移动应用的客户端开发。MAF
Login是其中的一个组件,它是一个可以方便的、与SMP进行集成的UI登录组件。
我这里尝试使用OData
SDK以及MAF Login组件来On Boarding,即使用OData SDK或者MAF
Login登录SMP,真实情况下你总会选择其中一种方式来Onboarding。例子以上述旅游代理公司为例,它需要开发一个移动应用,让其客户通过该移动应用在任何时候、任何地点方便的预定机票。这次我们先利用上一节创建的Application(后台连接的是Netweaver
Gateway获取ECC数据)来进行移动设备的Onboarding。我们的示例流程如下:
<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124608-1.jpg" alt="SMP3.0学习笔记之三使用ODataSDK或者MAFLogin组件进行OnBoarding” />
初始界面有两个按钮,分别是:SDKLogon,MAFLogon。当点击SDKLogon时我们调用OData
SDK进行Onboarding,如果成功就会显示一个登录成功界面,为了方便,所有的登录所需的信息我都写死在代码里了;如果点击MAFLogon按钮,就会进入MAF
Login组件自带的登录界面,用户填写足够的信息进行登录,如果登录成功就会显示登录成功界面。橙色部代表了MAF
Login的登录界面,蓝色是我自己实现的非常简单的界面。
创建一个新的Android
Application: My_RKT_MAFLogon,如下所示:
<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124608-83.jpg" alt="SMP3.0学习笔记之三使用ODataSDK或者MAFLogin组件进行OnBoarding” />
需要注意的是我们需要将下面的jar包加入到工程中,这些jar包可以从SMP
SDK中找到。
<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124608-22.jpg" alt="SMP3.0学习笔记之三使用ODataSDK或者MAFLogin组件进行OnBoarding” />
另外我们需要将maflogonui-res-1.2.1000,mafsettingscreen-res-1.2.1000,mafuicomponents-res-1.2.1000三个工程作为我们新建工程的引用library,
如下图所示。这三个工程可以在SMP SDK中找到,它们仅提供MAF所需要的resource,并不提供源代码。
<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124608-50.jpg" alt="SMP3.0学习笔记之三使用ODataSDK或者MAFLogin组件进行OnBoarding” />
在该工程中我新建了如下Activities:
<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124608-2.jpg" alt="SMP3.0学习笔记之三使用ODataSDK或者MAFLogin组件进行OnBoarding” />
其中:
MainActivity: 对应上述的初始界面,让用户选择使用OData
SDK进行Onboarding还是使用MAF进行Onboarding。
MyMAFLogonAcitity: 用来实现MAF Onboarding
SDKLogonActivity: 用来实现OData SDK Onboarding
MainMenueActivity: 登录成功后的界面
使用MAFLogin组件进行Onboarding的核心代码:
<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124608-39.jpg" alt="SMP3.0学习笔记之三使用ODataSDK或者MAFLogin组件进行OnBoarding” />
运行该Android Application,截图如下:
首页面(MainActivity):
<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124608-86.jpg" alt="SMP3.0学习笔记之三使用ODataSDK或者MAFLogin组件进行OnBoarding” />
点击MAFLogon,进入MAF Login组件的UI进行Onboarding:
<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124608-95.jpg" alt="SMP3.0学习笔记之三使用ODataSDK或者MAFLogin组件进行OnBoarding” />
<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124608-60.jpg" alt="SMP3.0学习笔记之三使用ODataSDK或者MAFLogin组件进行OnBoarding” />
可以看到,使用SMP SDK自带的MAFLogin组件,短短几行代码我们就可以实现一个界面友好的、与SMP良好集成的登录界面。
初始界面上点击SDKLogin会使用SDK实现Onboarding,使用OData
SDK进行Onboarding比使用MAFLogin组件稍微多写一些代码,但也相当的简单,核心代码如下:
<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124608-30.jpg" alt="SMP3.0学习笔记之三使用ODataSDK或者MAFLogin组件进行OnBoarding” />
无论使用SMP SDK还是使用MAF Login组件,成功登录后都会进入登录成功界面:
<img src="/oldimg/50/https://www.ut163.com/wp-content/uploads/2019/08/20190827124608-92.jpg" alt="SMP3.0学习笔记之三使用ODataSDK或者MAFLogin组件进行OnBoarding” />
现在我的Andrid设备已经成功Onboarding,接下来就是使用OData
SDK从SMP暴露的OData服务获取业务数据了。