版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、整理说明本文档以wademobile3.0作为开发基础且只有服务端的开发(客户端开发涉及android、ios此文档不做介绍)。Ps: 本文档以陕西智能终端CRM作为示例模式智能终端版CRM采用C/S加B/S(html5 + css3)的混搭方式。C/S部分用于智能终端客户端,主要负责客户端界面的展现、缓存数据管理及外设驱动,是B/S处理部分的容器;B/S部分主要处理业务相关能力,保持和当前CRM系统能力的一致。采用此方式的目的为了跨平台兼容android、ios,以及利用html5兼容各尺寸、分辨率的手机,且上手容易,达到快速开发的目的。业务逻辑都在服务端实现,熟悉java、html、js即
2、可快速上手开发。原理: 利用android webview组件,ios利用UIwebview组件解析html。网络结构客户端=外网=前置机=内网=代理/负载=M系列web应用=接口=数据库 服务端介绍环境服务端:Windows、Eclipse、JDK、Tomcat、webkit内核浏览器(Chome,360浏览器等)。Cvs 目录 Server: 15 /mnt/sdb1data/ngboss/ngboss_crm/crm/j2ee_shxi/mobile/mcrm4.5/server/mcrm_server_sx Lib:15 /mnt/sdb1data/ngboss/ngboss_crm/
3、crm/j2ee_shxi/mobile/mcrm4.5/server/library_sx 备注: 各省代码会有细小的差异,但核心部分一致。工程结构Server: 服务端基础工程Lib: 服务端类库服务端关联libSrc: 源代码 Bean 业务逻辑的实现 Core 核心代码 比如: context session httphelper 等 Dao 数据库操作代码 数据库相关连接,操作与wade一致。 因智能终端CRM 通过外网连接,且没有单独的业务逻辑 建议都采用接口Tool 工具类Util 配置静态常量信息等Etc/common 配置文件etc/common/adapter/ITF_MB
4、_Login.xml 预留给接口适配用的,目前没用etc/common/database.xml 预留给以后连数据库使用,目前没用etc/common/display-config.xml 业务展示功能图片配置文件(非必须)etc/common/perties ftp连接配置(非必须)etc/common/perties 日志打印配置文件etc/common/perties memcache 缓存地址配置文件 (非必须) /etc/common/perties http接口地址配置文件,用于从智能终端调用saleserv、esop等域接口。工程中配置有多个这样的文件是为了方便切换开发、测试和正
5、式环境地址。/mcrm_server_sx/etc/common/private_key RSA加密算法私钥/mcrm_server_sx/etc/common/public_key RSA加密算法公钥 上述文件用于加密数据请求,目前没用(非必须)etc/common/server-config.xml 服务端配置文件,用来配置开发模式、客户端版本号等信息。 ProductMode 配置生成还是开发模式 welcomePage 配置第一个启动的action encode 字符编码 cache mem表示使用memcache缓存 其他表示使用jvm缓存 sessionTimeout 超时时间 d
6、isposable 一次性鉴权配置(主要针对crm个人业务)(非必须 具体逻辑请看custLogin.js 非必须) appVersion android 版本号 iosAppVersion ios版本号 etc/common/server-data-comp.xml server-data.xml的扩展文 共用的接口配置etc/common/server-data-result.txt 配置Common.callSvc调用接口的json串返回值,用于脱离数据库环境时离线使用,方便演示及远程开发。etc/common/server-data.xml.local 与server-data-res
7、ult.txt作用一样,二者配套进行使用。etc/common/server-data.xml js调用srccomailkserverbean*.java的接口配置 Name名称 class调用的类 method 调用的方法 verify 是否校验sessionetc/common/server-action.xml 页面配置 一个action配置一个界面 Name action名称 template 具体对应的界面Web目录Biz/js 业务测jsDisplay 业务展示的展示信息 (非必须)FileCache 缓存文件目录 (非必须)Res/js 框架jswebframe-jcl.js
8、为框架核心jsiscroll.js 为开源滚动jso.js 没用core.js 为封装的公共调用wade-mobile.js 为js调用客户端方法mobile-browser.js 为浏览器加载jsmobile-client.js expand-mobile.js 为客户端加载js 其中 mobile-client.js expand-mobile.js 封装了许多调用客户端的方法如:getDate:function(callback,date,format,err)if(!format)format = yyyy-MM-dd;WadeMobile.callback.storageCallba
9、ck(getDate,callback);execute(getDate, date,format,err);第一个参数 回调方法第二个参数 时间第三个参数 格式WadeMobile.callback.storageCallback(getDate,callback); 保存回调方法execute(getDate, date,format,err); 调用客户端相应方法调用方法:Mobile.getDate(function(data)document.getElementById(qryDate).value = data;,yyyy-MM-dd); Res/mobile 图标Setup a
10、pk ,ipa下载目录Down.html 下载界面*.apk, *.ipa 安装包文件*.plist ipa 安装所需plist文件 Template html 目录 Head.html 头文件 主要为了引入响应js webtemplatecomp* 组件即公共htmlwebtemplatewebapp* 业务测 html perties 为资源版本文件 每次build以后 资源文件生成一个对应的md5值 , 每次打开客户端会去对比此文件,如果md5值不一样,就会重新下载资源文件。 资源文件包括: html,js,css,png,server-data.xml,server-action.xm
11、l工程部署 工程部署与wade一致Tomcat server.xml 服务端开发流程以新增功能为例:新增菜单配置脚本菜单显示界面 Nav.html插以下表:td_s_modfiletd_m_funcrighttd_b_systemguimenutf_m_rolefuncright具体插入数据参照已有功能菜单,需要注意的是td_m_funcright中的RIGHT_CODE字段值将会是后面用到的页面的映射名,以及菜单图标的名字(GCOS中是class名)。Ps:智能终端菜单权限配置与ngboss一致,当然也可单独配置具体逻辑请参照nav.html nav.js新增菜单图标将png图片放到工程的/
12、mcrm_server_sx/web/res/mobile目录。(GCOS需要配置/mcrm_server_sx/web/res/mobile.css,将菜单和图片进行关联,如:.m_nav .MESOP_Group .pic:before background-image:url(mobile/navIco-esop-myGroup.png);)Ps:菜单图片有两种显示需要看引入的哪版css具体请参照 nav.html mobile.css新增html、jshtml放到/mcrm_server_sx/web/template/webapp目录下业务js放到/mcrm_server_sx/we
13、b/biz/js目录下框架js放到/mcrm_server_sx/web/res/js目录下Ps:页面采用html5编写 简单页面可以自己写html ,复杂页面找美工设计新增html映射配置/mcrm_server_sx/etc/common/server-action.xml,如果配置的是菜单入口页面,那么映射名就是配置在td_m_funcright中的RIGHT_CODE,否则自己命名即可。新增数据接口配置/mcrm_server_sx/etc/common/server-data.xmljs中Common.callSvc方法调用的接口都配置在该xml文件中。新增java类或者方法业务ja
14、va类放置到/mcrm_server_sx/src/com/ailk/server/bean包中。Js介绍Js写法比较灵活,具体可参照biz/js。js数据结构 new Wade.DataMap() new Wade.DatasetList() 如:var param = new Wade.DataMap(); var params = new Wade.DatasetList(); params.add(param);Wade.DataMap 取值 alert(param.get(“键值”);Wade.DatasetList 取值 alert(params.get(0).get(“键值”);
15、ps: java数据结构也是 DataMap DatasetList缓存数据存入缓存Wade.mobile.storage.add(STAFF_ID,data.get(STAFF_ID);Wade.mobile.storage.add_local(STAFF_ID,data.get(STAFF_ID); 区别:PC两者无区别移动设备上 add_local 存储在文件中add 存储在应用缓存中对应有get , remove 方法 其中 get时需要使用回调Wade.mobile.storage.get_local(function(data) /继续其他业务逻辑 Data 如果为DataMap
16、DatasetList需要强制转换new Wade.DataMap(data)new Wade.DatasetList(data),Constant.STAFF_ID);Wade.mobile.storage.get (function(data) /继续其他业务逻辑,Constant.STAFF_ID);Wade.mobile.storage.remove(“STAFF_ID”);为兼容ios get方法必须使用回调。Ps: 缓存中只能存储 string 如果存储Wade.DataMap或Wade.DatasetList 请先 toString数据绑定接口返回数据绑定到界面。标签x_tag=
17、x-databind-template父节点 id=PaymentHistoryList方法:js绑定方法 dataset.bind(PaymentHistoryList);如:RECV_FEEPAYMENT(CANCEL_NAME)RECV_TIMEPs:具体可参照 paymentHistory.js paymentHistory.html加载提示Wade.mobile.util.beginLoading(页面初始化中.);Wade.mobile.util.endLoading();Pc端 调用的为css样式移动设备上 为原生的加载样式页面跳转Common.openPage(XX);如果页面
18、跳转需要传递参数Common.openPage(XX,param);/post 不向后台传递参数 param放数据在缓存中。 Common. openPageWithParam (XX,param);/ post 向后台传递参数 param放数据在缓存中Common. openTemplate (XX, param);/ get跳转XX为 server-action.xml 中配置的页面请求前一个界面Common.openPage(需要跳转到哪个界面,参数);后一个页面Common.getPageParam(function(params) /注意params的强制转换);其实就是放在本地缓存
19、中。内部实现请查看common.jsiScroll滚动myScroll = new iScroll(wrapper);iScroll 为开源滚动条, 采用的版本为4.2.5html 滚动区域RECV_FEEPAYMENT(CANCEL_NAME)RECV_TIMEJs:var myScroll;function loaded() myScroll = new iScroll(wrapper);document.addEventListener(touchmove, function (e) e.preventDefault(); , false);document.addEventListen
20、er(DOMContentLoaded, function () setTimeout(loaded, 200); , false);function setWrapper() document.getElementById(wrapper).style.height = document.getElementById(content).offsetHeight - document.getElementById(fixed).offsetHeight + px;可以百度下 iScroll具体用法冒泡提示Wade.mobile.util.tip(页面具体id,提示信息);Pc端 调用的为css
21、样式 显示的位置为(页面具体id)的上方移动设备上 为原生的加载样式 显示的位置为屏幕下方冒泡提示一般作为js校验的提示弹出框提示DialogBox.openInfo(这里写提示信息,提示信息);弹出框一般作为业务受理成功或失败的提示 Js前台调用后台Common.callSvc(接口名, params, function(data) /成功回调, function(x_code, x_info) /失败回调);接口名: 为server-data.xml 中配置的接口名Params: 一般为 wade.DataMap();Pc上:ajax请求移动设备上: http串浏览器 发送ajax 请求到
22、服务端 , 服务端在调用业务接口客户端 发送http串到服务端 , 服务端在调用业务接口接口调用perties 配置调用地址HttpHelper 接口调用类IDataset infos = (IDataset)HttpHelper.callHttpSvc(接口名, data);IDataset infos = (IDataset)HttpHelper.callHttpSvc(接口名, data,”syscode”);接口名:为各域(saleserv,channel,acctmanm,resmanm等)配置的接口名Syscode: 为perties中配置的地址, 如 channel.http.a
23、ddr= x.x.x.xchannel.http.svc=xx因j2ee的原因 ,wademobile没有封装tuxedo的调用,Tuxedo接口调用采用http转发data.put(TUXEDO_NAME, TAM_RECV_FEE);IDataset results = (IDataset)HttpHelper.callHttpSvc(TIF_CRM_CallTuxeDoByMobile, data);Tuxedo 已http的方式调到 saleserv的TIF_CRM_CallTuxeDoByMobile 在转换成 tuxedo接口调用。/* * tuxedo转http调用 */publ
24、ic IDataset mcallTuxedo(PageData pd, IData data) throws Exception if (data.getString(TUXEDO_NAME, ).equals()| (data.getString(TUXEDO_NAME, ).equals(null) common.error(99, 请输入Tuxedo名称,键值(TUXEDO_NAME));data.put(X_SELCOUNT, 4);IDataset results = TuxedoHelper.callTuxSvc(pd,data.getString(TUXEDO_NAME), d
25、ata);IData temp = (results != null) & (results.size() 0) ? results.getData(0) : new DataMap();String xResultCode = temp.getString(X_RESULTCODE, -1);String xResultInfo = temp.getString(X_RESULTINFO, );if (!0.equals(xResultCode) common.error(xResultCode, xResultInfo);return results;Ps: 如需调用 webservice, uip 等接口,请自行引入相应jar,以及封装相应的helper。其他客户端下载 Android:直接下载 HYPERLINK http:/mobile.apk http:/mobile.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB 12710-2024焦化安全规范
- 苏科版八年级物理上册《第三章光的折射、透镜》章末测试卷带答案
- 多功能会议室系统建议方案
- 主要领导在2025新年工作部署大会上的讲话
- 第十四章光的干涉作业
- 高一化学第二单元化学物质及其变化第二讲离子反应练习题
- 2024届河南省非凡吉创联盟高考化学押题试卷含解析
- 2024高中地理第一章宇宙的地球中4地球的结构课时作业含解析湘教版必修1
- 2024高中语文第一单元以意逆志知人论世自主赏析书愤学案新人教版选修中国古代诗歌散文欣赏
- 2024高中语文第四单元新闻和报告文学第12课飞向太空的航程学案新人教版必修1
- 第二章 运营管理战略
- 《三本白皮书》全文内容及应知应会知识点
- 专题14 思想方法专题:线段与角计算中的思想方法压轴题四种模型全攻略(解析版)
- 医院外来器械及植入物管理制度(4篇)
- 港口与港口工程概论
- 《念珠菌感染的治疗》课件
- 门店装修设计手册
- 考研计算机学科专业基础(408)研究生考试试卷与参考答案(2025年)
- 2024护理个人年终总结
- 海南省申论真题2020年(县级及以上)
- 商业伦理与企业社会责任(山东财经大学)智慧树知到期末考试答案章节答案2024年山东财经大学
评论
0/150
提交评论