代办任务推送第三方移动端,实现PC端进入PC端的任务处理页面,移动端进入移动端任务处理页面
1 业务背景
代办任务通过消息渠道推送给第三方app,比如企微、钉钉、泛微OA等,这些第三方终端是有pc桌面版和移动app版的,现状是,第三方终端无论是PC端还是移动端通过点击代办任务进入的都是苍穹移动审批处理页面;现场想达到的效果是第三方PC端点击代办进入的是PC端任务处理页面,移动端进入移动端任务处理页面
2 思路与方案
扩展移动端审批处理页面wf_approvalpagemobile_bac元数据,添加插件处理,在插件判断是否是通过PC端点击的代办任务,如果是则跳转到PC端的任务处理界面
3 实现步骤
以下是以钉钉桌面版为例
步骤1
扩展默认的移动端审批处理页面wf_approvalpagemobile_bac元数据,如果是新版则扩展wf_approvalpage_mob元数据,如何查看用的【默认/新版】移动端审批处理页面,见下图:
比如用的【默认审批界面】,则扩展wf_approvalpagemobile_bac:
步骤2
编写二开处理插件kdec.demo.case01.plugin.bill.PopLeaveAppPlugin
import java.util.HashMap; import java.util.Map; import kd.bos.bill.AbstractBillPlugIn; import kd.bos.context.RequestContext; import kd.bos.entity.datamodel.events.BizDataEventArgs; import kd.bos.form.FormShowParameter; import kd.bos.form.IClientViewProxy; import kd.bos.logging.Log; import kd.bos.logging.LogFactory; /** * 待办任务--移动端插件 * 增加判断访问时PC端和手机端 */ public class PopLeaveAppPlugin extends AbstractBillPlugIn { private final static Log logger = LogFactory.getLog(PopLeaveAppPlugin.class); @Override public void createNewData(BizDataEventArgs e) { RequestContext rc = RequestContext.get(); String user = rc.getClient(); //获取请求代理信息,从而判断是否是PC端点击进入 String requestHeader = rc.getUserAgent(); requestHeader = requestHeader.toLowerCase(); if (!this.pcOrPhone(requestHeader)){ IClientViewProxy proxy = this.getView().getService(IClientViewProxy.class); Map<String, String> mpURL = new HashMap<>(2); FormShowParameter formShowParameter = this.getView().getFormShowParameter(); Map<String, Object> customParams = formShowParameter.getCustomParams(); //获取代码任务id Object tid = customParams.get("tId"); //拼写PC端代办处理页面地址 String url = "index.html?formId=wf_approvalpage_bac&taskId=" + tid + "&type=toHandle"; url = rc.getClientFullContextPath() + url; // 重定向的页面地址,比如 https://www.yunzhijia.com/ mpURL.put("url",url); mpURL.put("noPushState", "true"); proxy.addAction("openUrl", mpURL); } } /** * 判断是PC端访问还是手机访问 * @param requesHeader * @return true:手机端 ;false:iPad和pc端 */ public boolean pcOrPhone(String requesHeader){ //android: 所有Android设备 ,mac os:iphone ipad,windows phone:nakia等Windows系统手机 String[] deviceArray = new String[]{"android", "mobile", "windows phone"}; if(requesHeader == null){ return false; } requesHeader = requesHeader.toLowerCase(); for(String str : deviceArray){ if(requesHeader.indexOf("ipad") > 0){ return false; } if(requesHeader.indexOf(str) > 0){ return true; } } return false; }
步骤3
注册二开插件kdec.demo.case01.plugin.bill.PopLeaveAppPlugin
4 效果展示
钉钉桌面版客户端
未二开处理前:
二开处理后:
5 相关资料
代办任务推送第三方移动端,实现PC端进入PC端的任务处理页面,移动端进入移动端任务处理页面
1 业务背景代办任务通过消息渠道推送给第三方app,比如企微、钉钉、泛微OA等,这些第三方终端是有pc桌面版和移动app版的,现状是,第三方...
点击下载文档
上一篇:如何将工作流审批信息写入单据字段。下一篇:流程管理员介绍
本文2024-09-23 00:55:06发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-142583.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章