【注意】最后更新于 October 17, 2018,文中内容可能已过时,请谨慎使用。
在我的
中新增智慧决策
菜单
- 先搜集菜单信息
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>
|
- 信息搜集之后,交付平台人员部署到平台上。
特别注意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];
}
}
}
|
菜单类型
当有相应业务权限后,菜单列会显示在我的
页面中
- 举例介绍
自定义路径菜单类型
现在程序中找到点击菜单的事件代码即类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
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
测试环境部署图文
产品线
如果部署失败
- 临时解决办法:
- 通过普通方式部署
./release.command -t
- 协调测试人员,包配置中去除产品线插件
这样会影响android端发布,慎重。
- 找平台发布解决。经协调,已修复,可通过产品线部署。
详细介绍
- 部署命令
功能:将当前目录下的工程部署到对应环境
命令:
release.command
参数1:
1
2
3
| -d dev环境
-t test环境
-z 正式环境
|
参数2:
该参数与app后台网站上的 [功能页] -> [应用产品线] 设置中指定的产品线名称一一对应, 目前产品线名称有 电商 / 图文 / OA办公 / 企业经营, 参数对应关系如下:
1
2
3
4
| 1 电商
2 图文
3 OA办公
4 企业经营
|
当app未打应用产品线时, 禁止填写该参数.