驰骋工作流引擎-CCMobile与安卓、IOS集成过程中的问题与解决方案

CCMobile与安卓、IOS集成过程中的问题与解决方案

前言:

CCMobile(2019版本)是CCFlow&JFlow 的一款移动端审批的产品。系统基于mui框架开发,是一款可以兼容Android与IOS的移动端工作流审批系统。由于CCMobile仅仅局限于移动端的流程审批,所以在其他办公功能方面很少,这时可能就需要在源码上开发或者与其他APP进行集成。

由于Mui是一款h5的框架,并不是原生的,所以在与原生APP集成时,会出现一些问题,主要集中在附件上传下载、屏幕兼容等。本文章,将具体描述与其他APP进行集成时出现的问题以及解决方法。

与IOS进行集成

1.主要问题汇总

与IOS进行集成时,主要有3个问题,即:返回(关闭)、全面屏与刘海屏样式兼容、附件上传与下载。

2.返回(关闭)

IOS操作系统不同于Android,不像Android具有back键。Android点击back键时,可以顺序返回,直到返回首页。IOS则没有,如果从原生跳转到CCMobile,IOS是不可能在CCMobile中返回到APP首页的,只能结束APP,重新打开。所以,我们在CCMobile的首页中,添加返回(关闭)按钮,点击后,可以关闭CCMobile,直接返回到APP指定的页面。

在CCMobile中,我们约定了一个返回(关闭)的调用方法,通过调用IOS原生方法,实现关闭(返回),调用代码如下:

window.webkit.messageHandlers.backAction.postMessage("backActionStr");

这句代码的意思调用IOS原生的backAction方法,参数是backActionStr,这个参数没有具体含义,只是为了方便判别。IOS原生的backAction方法就是关闭CCMobile,跳转到指定页面的方法,代码参考上图中红色框标识1。

下图中的 x 按钮,就是关闭(返回)。

3. 全面屏与刘海屏样式兼容

包括Android手机在内,绝大部分的手机都有全面屏与刘海屏,两者的样式区别就是刘海屏比全面屏的顶部,凹下去一块,如果按照全面屏的显示样式来说,CCMobile没什么问题,但是遇到刘海屏,CCMobile的顶部,就会被盖住一部分。

为了解决这样的情况,CCMobile没有为具体机型制定样式,而是在IOS代码中增加判断和修改,如果是刘海屏的机型,增加了整个CCMobile到顶部的距离。

IOS代码如上图红色框标识2所示。

4.附件上传与下载

H5的附件上传,需要在IOS原生中将相关权限开放,否则H5是无法调用手机相关功能的。如下图:

附件下载,由于在流程中上传的附件上传到服务器中,因此在手机端进行附加下载时,需要将服务器中的附件信息提供给手机,才能供手机下载。

因此,我们在这个地方,也约定了一个下载的方法名称,setLoadUrl。

window.webkit.messageHandlers.setLoadUrl.postMessage(Url);

IOS原生代码中,需要添加这个setLoadUrl方法,参数是附件的url地址,IOS根据URL进行下载。具体下载代码如上图红框标识3所示。

与安卓(Android)进行集成

1. 主要问题汇总

与IOS不同,CCMobile对安卓的支持相对好一些,有一些功能为了兼容IOS,做了特殊处理,因此在展现方面,两者有所不同,比如:选择器(下拉选择框)。

第一张图为安卓展示效果,第二张图为IOS显示效果。

虽然安卓不存在IOS返回(关闭)的问题,但是在集成时也存在全面屏与刘海屏样式兼容、附件上传与下载两个问题。

安卓的屏幕兼容问题,与IOS的解决思路一样,在安卓原生中,判断机型,自动计算并设置CCMobile到手机状态栏的具体距离,此处就不再详细说明了。下面将具体讲解附件上传与下载的集成问题。

2. 附件上传

mui的窗口界面采用的webview模块,因此在webview中带有 input file的控件时,在手机端中是无法点击的,因此,无法达到上传附件,并且也不会调动手机相机的操作。

为了解决这个问题,在安卓原生中需要做以下操作:

第一步:重写WebChromeClient。

第二步:监听ValueCallback。

第三步:webview要添加相应的设置。

第四步:创建onActivityResult。

具体代码参考:https://blog.csdn.net/shuaiyou_comon/article/details/76262303

3.附件下载

安卓的附件下载,与IOS的附件下载设计思路一样,需要在安卓原生中,增加一个下载方法,供CCMobile使用。

第一步,增加下载方法,代码参照如下:

第二步,方法声明,CCMobile可以使用原生代码进行调用。

CCMobile中调用原生接口的代码:

window.Android.setAttachmentUrl(Url);

setAttachmentUrl是原生下载的方法名,附件的url是参数。

原文地址:https://www.cnblogs.com/mengjuan/p/11162087.html

时间: 2024-10-07 05:44:39

驰骋工作流引擎-CCMobile与安卓、IOS集成过程中的问题与解决方案的相关文章

驰骋工作流引擎简介

驰骋工作流引擎是国内首屈一指的开源软件,目前在国内市场中占有很大市场.自发展之初驰骋工作流引擎就一直以服务社会为原则,将底层核心代码毫无保留的开放给合作伙伴和开源爱好者等热爱工作流的各种群体.驰骋工作流引擎在十多年的发展过程中,通过和国内的政府机关.企事业单位等大型机关以及公司等的合作,不断完善自身业务处理能力和流程的适应性,每一步的发展历程都为今日的辉煌成果奠定了根基. 驰骋工作流研发的一系列开源软件如下: CCFLOW为驰骋工作流引擎的原身,在此基础上我们扩展系列产品线.CCOA为办公自动化

驰骋工作流引擎-总体介绍

关键字:驰骋工作流引擎,开源工作流,CCFLOW,CCBPM,流程引擎,流程解析服务器,表单引擎,表单解析服务器,.NET工作流,源代码 产品名称: 驰骋.net工作流程引擎. 英文名称: chicheng workflow engine 简称: CCFlow版本: 6.0.0 开发历史: 2003-2016年. 性质: 完全开源软件 许可协议: GPL URL: http://www.gnu.org/licenses/gpl.html 官方网站: http://ccflow.org 源代码:

驰骋工作流引擎-地图定位控件

Technorati Tags: 驰骋工作流引擎 .工作流 .CCBPM JFLOW CCFLOW.手机表单. 地图定位控件 关键词:驰骋工作流引擎 工作流 CCBPM JFLOW CCFLOW手机表单 地图定位控件 驰骋工作流引擎开源软件,为适应在手机端的应用,现开发了地图定位控件.该控件可嵌入到表单中,在系统人员进行待办信息的处理时获取当前所处位置信息. 地图定位控件位于驰骋工作流表单设计器的工具栏位置.如图所示: 通过手机微信端和钉钉客户端的访问,可展示的效果如下.

驰骋工作流引擎-表单样本展示

系统全局变量的引用 在系统中有很多的地方需要用到表达式的地方,这些表达式就需要参数与变量,这些参数是以@+变量名. 我们把参数与变量分为全局变量,字段变量. 全局变量: Technorati Tags: 关键字: 开源工作流引擎,驰骋.net工作流引擎,开源表单引擎,ccform,ccflow,jflow,ccbpm,明细表 操作人员登陆系统后就有如下全局变量. @WebUser.No  当前操作员编号 @WebUser.Name 当前操作员名称 @WebUser.FK_Dept 当前操作员部门

关于开源驰骋工作流引擎ccbpm对bpmn2.0的支持

各位ccbpmer : Ccbpm将要支持bpmn2.0了. 我们会保留现在的ccbpm设计模式,也支持bpmn2.0的规范,让ccbpm与国际接轨.包括.net版本ccflow与java版本jflow.在新版本中,我们将要支持导出导入两种格式的流程模版文件.也就是说,只要你画的流程符合bpmn2.0的规范,也可以导入到ccflow或者jflow工作流引擎中,支持bpmn2.0的画图工具很多,例如:viso,rose. 什么是bpmn2.0? 业务流程模型注解(Business Process 

驰骋工作流引擎设计系列02

流程实例的生成设计 第1节. 关键字 驰骋工作流引擎 流程快速开发平台 workflow ccflow jflow 第2节. 关于WorkID的设计 workid也叫流程实例id, 理解清楚workid的整个过程有助于理解如何获得数据,以及相关流程引擎表,业务数据表的产生变化的过程. 第3节. 概要说明 工作流程引擎的WorkID,也叫流程实例的ID,他是一个Int64类型的,自动增长的数据类型,经过严格的测算,一般应用不会枯竭. 一个workid可会贯穿整个流程的生命周期,从workid创建开

驰骋工作流引擎设计系列04 流程引擎表结构的设计

第1节. 关键字 驰骋工作流引擎 流程快速开发平台 workflow ccflow jflow 第1节. 流程引擎表结构的设计 流程引擎表是流程引擎控制流程运转的数据存储表,是整个流程引擎的核心表.理解表结构,掌握状态字段,相关字段变化的规律,就掌握的整个流程引擎运转的规律了. 1.1.1: 流程引擎表的作用 流程引擎表,是用来存储流程运行中信息的表. 流程在运行过程中,需要把中间数据写入到该表中. 一个流程启动后,就创建一个workid,就在流程引擎注册表里注册一条数据,有一个字段WFStat

驰骋工作流引擎设计系列06 保存草稿设计

第1节. 关键字 驰骋工作流引擎 流程快速开发平台 workflow ccflow jflow 第1节. ccflow保存与保存草稿设计 保存,就是用户点击保存所要执行的工作,在讲解这个概念之前,我们要了解什么是草稿规则. 1.1.1:ccflow 关于草稿规则 定义:流程发起工作做了一部分,就关闭了下次处理,对这件工作我们就称为草稿. 应用背景:草稿也是常用功能之一,它是针对于,开始节点的表单才有意义.它类似于我们的邮件草稿,当您发起一个工作后,录入了一些数据,有与其他的原因,需要暂停该工作,

驰骋工作流引擎设计系列10时效考核规则设计

第1节. 关键字 驰骋工作流引擎 流程快速开发平台 workflow ccflow jflow 第1节. 时效考核规则设计 考核是流程运行的副产品,业务搬到了计算机上,整个运行轨迹就会被有效的记录下来.CCBPM的考核分为时效考核.质量考核.时效考核是对工作及时程度的一种考核,而质量考核是一个节点对上一个节点工作完成好坏的一个考核. 1.1.1: 时效考核的系统配置 系统配置分为工作日信息设置,节假日信息设置. 上下班&午休时间配置,该设置在全局变量里:JFlow的配置: CCFlow的配置: