企业需求

随着企业规模与业务的持续发展,很多企业集团拥有众多的应用与系统,比如客服中心系统,用户中心系统,结算中心系统,物流中心系统等……。由于历史原因,这些系统拥有独立的访问域名和入口,独立的操作界面与后台,这给企业的管理和运维带来了非常大的挑战,主要有以下几点:

1. 由于各个应用系统入口不统一,许多用户需要保存记录多个网址。

2. 每个系统均有自己独立的用户账号管理,账号不统一。

3. 各个系统之间切换的时候,需要反复登录。

4. 每个系统的UI界面与操作风格不统一。

为了解决以上问题,可以采用以下策略:

1. 创建统一的管理平台,用户只需要记录统一的管理平台的地址即可。

2. 统一账号,将所有的账号信息由统一管理平台统一维护,包括注册、权限、信息维护。

3. 统一登录,即只需要在统一管理平台登录一次,在不同应用系统间切换不再需要重复登录。

4. 统一视觉与交互,创建统一的UI设计规范与交互规范,各个应用系统必须遵守。

方案一:各系统完全独立的方案

界面设计管理系统(企业多系统统一UI与交互的方案分析)(1)

统一设计

每个应用与系统完全独立开发,技术方案与选型没有任何限制,无论是单页应用(SPA)还是多页应用(MPA),无论是REACT, VUE, ANGULAR还是Jquery。 只要遵守设计规范,保障各个系统UI风格和交互统一即可。

这个方案更适合于各个应用非常独立,从前端到后端服务全部都归属于某个业务方,而且各个业务方之间也比较独立,没有中心化管理的需求。

各个系统可以通过CDN加载统一的CSS样式,JS脚本来实现样式和交互方式的统一。

方案二:Iframe方案

通过Iframe内嵌,可以使用户在当前系统页面中查看其他系统页面的内容,并且iframe本身具有100%隔离性(天然隔离CSS样式,JS脚本),具有技术栈无关等优势。

界面设计管理系统(企业多系统统一UI与交互的方案分析)(2)

iframe方案

<iframe src="http://example.com" />

劣势:

1. iframe 用户体验不好,页面加载慢,会出现双滚动条;

2. 内部蒙层无法遮罩到外部框架,同时布局也无法居中;

3. iframe 内部路由跳转,不会影响到外部的路由地址,无法记住当前访问的页面地址,当刷新页面的时候,iframe又会回到之前的页面。

4. 因为完全的运行环境隔离,给数据同步增加了成本,通常用 postMessage 解决复杂通信的问题。Safari 11之后默认禁止跨站跟踪,所以会强制隔离同域的cookie,localstorage,造成应用的某些功能比如同步登录不好用。

方案三:微前端方案

什么是微前端:微前端是主应用(统一后台)通过路由的监听与接管, 运行时动态加载对应地址的子应用(中心网站)的内容(HTML/JS/CSS), 之后运行在主应用的容器中的一种架构方案。

界面设计管理系统(企业多系统统一UI与交互的方案分析)(3)

微前端

微前端特点:

1. 与技术栈无关

2. 子应用独立部署

3. 用户体验好,不会全页面刷新,子应用与主应用无缝衔接,主应用对子应用可控,子应用可获取主应用资源(看上去就是一个应用一样),可通过主应用进行数据通讯。

4. 主应用加载子应用的时候需要子应用部署的时候支持跨域,当子应用运行在主应用的容器里时,子应用请求子应用的后端API时,也需要子应用后端API支持跨域。

5. 主应用与子应用需要按照统一规则进行开发(通过约定命名空间规避CSS样式冲突等问题),并进行联调测试(接入问题可能会比较多)

6. 适合将一个大项目(巨石应用)拆分为许多不同技术栈,独立仓储,独立部署的小型应用。

7. 不适合接入传统多页应用MPA

,