SMP3.0学习笔记之十一 与第三方HTML5框架(例如Sencha Touch)集成

作者:穿行印象

http://blog.sina.com.cn/s/blog_7a9486880101qhoc.html


在SMP2.x中,HWC也可以与Sencha Touch HTML5框架集成,但是由于MBO与HWC的交互不足够开放,存在很多局限性。SMP3.0使用开放的RESTFul服务框架,Hybrid Web Container使用Cordova,整个过程更加的开放,因此除了前面提到的可以使用SAP UI5的HTML5框架以外,还可以方便的与第三方的HTML5框架(例如Sencha Touch)集成。SMP3.0的开放性,使得开发人员可以灵活地选择自己熟悉的HTML5开发框架与工具。

    创建一个cordova工程:
cordova -d create C:\Kapsel_Projects\SenchaExcercise com.sap.sencha.exercise SenchaExcercise
    增加对android的支持:
cd C:\Kapsel_Projects\SenchaExcercise
cordova -d platform add android
    增加Kapsel Logon Plugin:
cordova -d plugin add C:\SAP\MobileSDK3\KapselSDK\plugins\logon

    适应sencha touch构建自己的HTML5应用,然后将其工程文件copy至
C:\Kapsel_Projects\SenchaExcercise\www
目录下。
     Sencha Touch的工程也是遵循MVC设计模式的,其入口程序在app.js。app.js中调用Kapsel的logon plugin的方法进行登录。 其关键代码在于方法logonSuccessCallback,当Logon Plugin成功登录后,会调用该回调方法,在该方法中使用HTTP GET获取SMP3.0暴露的OData服务,获取到航空公司数据后进行显示:

        launch: function() {
            var appId = "com.sap.flight.kapsel.sencha";
            var context = {
           "serverHost" : "192.168.174.129", //SMP 3.0 Server hostname or IP
           "serverPort" : "8080", //SMP 3.0 Server port
           "https" : "false" //Use HTTPS?
          };
           
            sap.Logon.init(this.logonSuccessCallback, this.errorCallback, appId, context,sap.logon.IabUi);
        },
       
            logonSuccessCallback: function(result){

            appContext = result;
         
         //configure the store   
            var aStr=Ext.getStore("airlinesStr");
            var aProxy = aStr.getProxy();

            //aProxy.getUrl - contains the resource path - CarrierCollection
            aProxy.setUrl(appContext.applicationEndpointURL + aProxy.getUrl());
            aProxy.setUsername(appContext.registrationContext.user);
            aProxy.setPassword(appContext.registrationContext.password);
            var headers = { "X-SMP-APPCID" : appContext.applicationConnectionId};

            aProxy.setHeaders(headers);
            aStr.load();
         //Initialize the main view
             Ext.Viewport.add(Ext.create('Myapp.view.Main'));
        },

 

准备发布该project:
       cd C:\Kapsel_Projects\SenchaExcercise
       cordova prepare android
运行后的登录界面,可以看到该登陆界面是Kapsel Logon Plugin的界面:



登录成功后使用Sencha Touch来显示航空公司信息:

 



  

前端html5框架ZUI发布1.2正式版本了! 此版本增加了很多新特性,同时修复问题,文档也得到大幅完善。 欢迎大家使用并反馈问题, 更新明细: 1、新增日历视图组件,方便实现日程的展示 2、新增数据表格视图组件,更轻松实现复杂数据的展示,移除table.data.js 3、重新实现的模态框触发器,模态框触发器同时支持加载远程内容和实时内容,实时根据自身内容调整位置和尺寸,重新设计了调用接口,使用更加方便,消除了模态框触发器于一般模态框发生冲突的隐患 4、package.json增加组件及其依赖关系的配置,重新实现了Grunt任务,编译单独组件更加方便,并支持任意组件集合的打包编译,grunt任务将自动管理组件之间的依赖关系 5、大幅更新文档部分章节内容,并对文档整理样式进行了调整,在文档中可以查看每个组件属性,并给出第三方组件版本及用户支持信息,文档支持IE8,优化文档在小屏幕上的表现 6、重新实现了漂浮消息组件,调用更方便,更好的动画效果 7、新增新的第三方组件chartjs,能够绘制简单图表 8、增加browser.js,为IE系列的浏览器增加版本提示辅助类 9、新增 'store.js',实现本地存储通用接口,并增加单独页面范围的独立存储机制,beta版本中的页面标识有时不正确的bug已得到修复 10、新增 'jquery.extensions.js',增加一些实用的jQuery扩展方法,便于进行其他组件的开发,移除原'unities.js' 11、增加array.js,提供一些操作数组的实用方法 12、调整了dist目录结构,第三方组件和适合单独调用的组件将直接包含在lib目录中 13、Chosen选项及分组支持title属性,Chosen弹出列表支持自定义宽度,调整多选Chosen中选项的样式 14、修复Chosen中特定情况下placeholder无法显示的问题 15、日期时间选择器将能够自动从html标签中获取页面语言设置并应用语言设置 16、调整左侧固定导航样式 17、在date.js中增加一些实用方法来帮助进行日期计算 18、模态框支持额外的两种默认尺寸,修复某些时候模态框弹出时滚动条闪动的问题 19、修复代码段第一行出现错位的样式问题 20、一些组件的额外组成部分其对应的文件被重新命名 21、修复特定情况下kindeditor图标无法显示的问题 22、优化区块面板视图动作按钮事件监听机制 23、修复color.js中增加命名颜色支持 26、弹出框增加新的选项能够制定JS生成DOM的id属性,便于自定义样式 27、大幅优化代码,修复一些在Javascript代码中的错误,完善关键代码注释,增强部分代码文件与requierejs的兼容性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值