代办任务推送第三方移动端,实现PC端进入PC端的任务处理页面,移动端进入移动端任务处理页面

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

代办任务推送第三方移动端,实现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版的,现状是,第三方...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息