如何开发移动端首页和导航栏原创
金蝶云社区-吴锐雄
吴锐雄
6人赞赏了该文章 841次浏览 未经作者许可,禁止转载编辑于2023年09月14日 15:31:03

关键词:移动端,首页,导航栏

一、需求

开发移动端首页,作为手机进入苍穹的入口。

一些企业办公平台的手机app,例如企业微信、钉钉等,在配置企业应用时,需要一个进入苍穹的首页。


二、思路与方案

1.首页本质上是一个移动表单,可以将多个页面入口集成到首页上。

2.点击底部导航栏时,可以使用ShowType.InContainer的方式打开对应的子页面。


三、实现过程

1.设计导航栏页面

在中间区域添加一个flex容器,用来展示子页面,flex容器控件的标识是kdec_flex_container。

添加工具栏,新增3个按钮,三个按钮分别对应切换到三个界面:借阅、新闻公告、我的。

image.png


2.设计三个子页面

注意:开发者需要根据自身业务需求设计子页面,这里仅做一个示例。

设计借阅页面,标识为:kdec_main_bhb

image.png

设计公告页面,标识为:kdec_main_bhan

image.png

设计我的页面,标识为:kdec_main_bhm

image.png


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.创建快捷应用,设置苍穹访问地址。


图片1.png

如图所示,在当前内网的开发环境中,

在钉钉的快捷应用上面设置了一个ip地址+端口号。

query参数:form=页面标识

图片2.png


拼接移动端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


四、效果图

image.png

image.png


五、开发环境版本

无限制


六、注意事项和参考资料

1.目前底部导航栏的选中效果,要写比较多的代码才能够实现,后续我会开发一个底部导航栏自定义控件。

2.案例中用了钉钉的快捷应用作为案例,如果想要创建钉钉的企业应用以及配置单点登录,请参考文章:

https://vip.kingdee.com/link/s/l6374






赞 6