我的中新增智慧决策菜单

  1. 先搜集菜单信息 name:菜单名称,必填,显示在我的页面的cell上。 componentId: 业务ID,必填项,通过该字段控制前端权限/业务 group.order: 设置菜单组在我的页面显示的位置 item.order: 设置菜单在自己组中的显示位置 icon:菜单图标的名称,前端需要在我的插件项目的资源包中添加同名的图片 show:设置菜单是否为默认被打包 重要项 contentType: 设置平台配置菜单的样式:如:单选/输入框 等 WebItemUrl: 仅当输入框样式时,前端解析该字段,访问网页。(兼容android问题,输入框必须时绝对路径,即:http开头) method: 待补充 event: 待补充 localURL: 待补充 部分样例如下:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<group order="5" show="1" orientation="0" contentType="SafetyCaterOperate">
    <item>
        <id></id>
        <componentId>SafetyCaterOperate</componentId>
        <name>阳光餐饮运营</name>
        <order>1</order>
        <icon>icon_safetycateroperate</icon>
        <event>JhItemId:</event>
        <method>safetyCaterOperate</method>
        <isArgs>flase</isArgs>
        <isRed>false</isRed>
        <show>0</show>
    </item>
</group>
  1. 信息搜集之后,交付平台人员部署到平台上。

特别注意contentType 输入框类型:

手机端解析我的菜单

我的插件控制器JHPersonalViewController解析布局配置文件:personalNewPage.plist,根据菜单配置显示样式。

业务权限解析

我的控制器初始化UI加载过程中,会先解析业务id,来控制菜单是否显示:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
#pragma mark    加载数据
-(void)loadData{
    ...
    NSString * inforPath = [[NSBundle mainBundle] pathForResource:@"personalNewPage" ofType:@"plist"];
    ....
    通过解析
    if ([detailRow.componentId isEqualToString:@"IntelligentDecision"]) ){
    //如果是食品管理政府,且用户已登录,且允许添加,且是组织内用户,则添加
        if ([[LoginAndRegister sharedLoginAndRegister] isUserOfficialLogin] && [[LoginAndRegister sharedLoginAndRegister] IsOrganizationUser]) {
            [rows addObject:detailRow]; 
        }
    } 
}

菜单类型

当有相应业务权限后,菜单列会显示在我的页面中

  1. 举例介绍自定义路径菜单类型
    现在程序中找到点击菜单的事件代码即类PKHorizontalCell.m
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
- (UIView *)containsView{
    ...
    //菜单icon设置
    [btn setImage:[PersonalHelper imageWithSuffixName:detail.icon] title:detail.name forState:UIControlStateNormal];
    //菜单点击事件
    [btn addTarget:self action:@selector(eachBtnAction:) forControlEvents:UIControlEventTouchUpInside];
    ...
}
- (void)eachBtnAction:(id)sender{
        ...
        [self.delegate clickBtnWith:detail];
        ...
}
  1. 菜单业务实现 定位到点击事件的实现片段:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
- (void)dealClickWhenSelectedCellWith:(DetailRows *)detail{
    ...
    //解析到自定义的菜单路径
    NSString * webColumnUrlString = detail.WebItemUrl;
    ...
    if (webColumnUrlString && ![webColumnUrlString isEqualToString:@""])
    {
        //仅当菜单类型为自定义链接时,即输入框样式,前端解析url访问网页。(兼容android问题,输入框必须时绝对路径,即:`http`开头)
        if ([webColumnUrlString hasPrefix:@"http"] && ![detail.icon isEqualToString:@"personalWork"]) {//兼容办公业务是http开头的但走本地www包
            [JHWebviewManager pushWebViewControllerWithURL:webColumnUrlString isShowReturnButtonAndCloseButton:YES title:@""];
            return;
        }
    }
}

iOS部署产品线

目前平台部署仅支持测试环境。在正式环境使用./release.command -t

测试环境部署图文产品线

1
./release.command -t 2

如果部署失败

  1. 临时解决办法:
    • 通过普通方式部署./release.command -t
    • 协调测试人员,包配置中去除产品线插件

这样会影响android端发布,慎重。

  1. 找平台发布解决。经协调,已修复,可通过产品线部署。

详细介绍

  1. 部署命令 功能:将当前目录下的工程部署到对应环境 命令:release.command 参数1:
1
2
3
-d   dev环境
-t   test环境
-z   正式环境

参数2: 该参数与app后台网站上的 [功能页] -> [应用产品线] 设置中指定的产品线名称一一对应, 目前产品线名称有 电商 / 图文 / OA办公 / 企业经营, 参数对应关系如下:

1
2
3
4
1    电商
2    图文
3    OA办公
4    企业经营

当app未打应用产品线时, 禁止填写该参数.