调用第三方接口
1. 场景描述
某公司已经有拥有一个在线的服务端系统,现希望将业务系统搬迁到移动智能终端上,同时能利用现有系统的数据服务。
2. 解决思路
使用IPU的客户端框架,不使用IPU的服务端框架。界面展示和交互以及简单业务逻辑由客户端的JS实现。可自定义传输数据的结构。
3. 解决方法
服务端方面:
修改web/res/js/mobile/mobile-browser.js,在其中添加一个自定义方法“this.callAppSvc”,在此自定义方法中封装好数据后,调用this.callSvc方法。
在src/com/ai/server/bean中添加一个this.callSvc对应的bean类,并配置好server-action.xml。(具体参见wade-mobile服务端开发或此解决方案的详细步骤)
在上述bean类中,去实现访问已有服务端的逻辑,并将数据封装好后返回。
客户端方面:
修改web/res/js/mobile/mobile-client.js(如若为offline工程,对应的路径应为assets/template/webapp/res/js/mobile/mobile-client.js),在其中添加一个自定义方法“this.callAppSvc”,在此自定义方法中封装好数据后,调用WadeMobile.callAppSvc方法(此方法为一个自定义客户端插件的方法,下面有具体实现)。
开发一个自定义客户端插件。在wade-mobile-func工程的func目录下修改(或添加)MobileApp类文件,在此类中添加callAppSvc方法,在此callAppSvc方法中去实现访问已有服务端的逻辑,并将数据封装好后使用callback方法,将数据返回给页面。并且配置好assets/mobile-action.xml。
修改web/res/js/mobile/expand-mobile.js(如若为offline工程,对应的路径为assets/template/webapp/res/js/mobile/expand-mobile.js),配置好你的自定义插件。(此插件也就是步骤1中提及的自定义插件)
使用方式:
完成上述步骤后,即可在页面上使用Mobile模块的callAppSvc方法,去访问已有的服务端。具体的访问方式根据你自定义插件的实现方式而定。此时,当使用浏览器访问时,会进入到wade-mobile的服务端,当使用移动终端访问时,会进入你的自定义插件中。最终两者都会去访问已有的服务端,将数据带回页面,只是在不同情况下,内部实现有些差异而已。