关键词:移动端,首页,导航栏
一、需求
开发移动端首页,作为手机进入苍穹的入口。
一些企业办公平台的手机app,例如企业微信、钉钉等,在配置企业应用时,需要一个进入苍穹的首页。
二、思路与方案
1.首页本质上是一个移动表单,可以将多个页面入口集成到首页上。
2.点击底部导航栏时,可以使用ShowType.InContainer的方式打开对应的子页面。
三、实现过程
1.设计导航栏页面
在中间区域添加一个flex容器,用来展示子页面,flex容器控件的标识是kdec_flex_container。
添加工具栏,新增3个按钮,三个按钮分别对应切换到三个界面:借阅、新闻公告、我的。
2.设计三个子页面
注意:开发者需要根据自身业务需求设计子页面,这里仅做一个示例。
设计借阅页面,标识为:kdec_main_bhb
设计公告页面,标识为:kdec_main_bhan
设计我的页面,标识为:kdec_main_bhm
3.开发导航页面插件
使用ShowParameter,InContainer的方式,在flex容器中打开对应的子页面。
关键代码如下:
@Override public void registerListener(EventObject e) { super.registerListener(e); // 移动端,监听按钮点击 addClickListeners("kdec_borrow", "kdec_ann", "kdec_my"); } @Override public void click(EventObject evt) { super.click(evt); if (evt.getSource() instanceof Control) { switch ( ((Control)evt.getSource()).getKey() ) { case "kdec_borrow": { // 点击底部工具栏,借阅按钮 MobileFormShowParameter showParameter = new MobileFormShowParameter(); showParameter.setFormId("kdec_main_bhb"); showParameter.getOpenStyle().setTargetKey("kdec_flex_container"); showParameter.getOpenStyle().setShowType(ShowType.InContainer); getView().showForm(showParameter); } break; case "kdec_ann": { // 点击底部工具栏,“公告”按钮,切换到“公告”页面 MobileFormShowParameter showParameter = new MobileFormShowParameter(); showParameter.setFormId("kdec_main_bhan"); showParameter.getOpenStyle().setTargetKey("kdec_flex_container"); showParameter.getOpenStyle().setShowType(ShowType.InContainer); getView().showForm(showParameter); } break; case "kdec_my": { // 点击底部工具栏,“我的”按钮,切换到“我的”页面 MobileFormShowParameter showParameter = new MobileFormShowParameter(); showParameter.setFormId("kdec_my_bhm"); showParameter.getOpenStyle().setTargetKey("kdec_flex_container"); showParameter.getOpenStyle().setShowType(ShowType.InContainer); getView().showForm(showParameter); } break; } } }
选择性添加:
如果想要让按钮有选中状态效果,可以click事件添加如下代码
// 点击底部工具栏,首页按钮,让“首页”按钮置蓝色,“新闻公告”、“我的”按钮置灰色 Map fieldMap = new HashMap(); fieldMap.put("imageKey", "/icons/mobile/tab_bar/icon_homepage_64_64.png"); getView().updateControlMetadata("kdec_borrow", fieldMap); Map fieldMap2 = new HashMap(); fieldMap2.put("imageKey", "/icons/mobile/tab_bar/icon_yy(x)_64_64.png"); getView().updateControlMetadata("kdec_ann", fieldMap2); Map fieldMap3 = new HashMap(); fieldMap3.put("imageKey", "/icons/mobile/tab_bar/icon_my(x)_64_64.png"); getView().updateControlMetadata("kdec_my", fieldMap3);
4.在钉钉或者企业微信中添加上述开发好的首页
以钉钉为例,进入钉钉的开放平台
1.进入钉钉开放平台,注册用户。
2.创建快捷应用,设置苍穹访问地址。
如图所示,在当前内网的开发环境中,
在钉钉的快捷应用上面设置了一个ip地址+端口号。
query参数:form=页面标识
拼接移动端url:
移动动态表单、单据的新增页,以本案例的首页就是这种
https://ip:port/ierp/mobile.html?form=页面标识
移动列表页面
https://ip:port/ierp/mobile.html?type=mobilelist&form=模板标识&billFormId=页面标识
移动单据详情页面
https://ip:port/ierp/mobile.html?form=页面标识&pkId=单据主键id
四、效果图
五、开发环境版本
无限制
六、注意事项和参考资料
1.目前底部导航栏的选中效果,要写比较多的代码才能够实现,后续我会开发一个底部导航栏自定义控件。
2.案例中用了钉钉的快捷应用作为案例,如果想要创建钉钉的企业应用以及配置单点登录,请参考文章:
https://vip.kingdee.com/link/s/l6374
home_navigation.zip(32.68KB)
推荐阅读