喜欢从业的专注,七分学习的态度。
概述
H5-APP:场景提出是应对当前企业系统中面临的主要问题而提出来的。原生APP在企业系统中面临的主要问题包括:重复研发,差异与同步,升级更新,外系统交互等问题。利用H5集成的方案将ios和andorid的人员需求集中在Java+H5上,解决差异和交互问题的基础上还能实现对需求的快速响应。
问题
H5构建APP确实能从直观上聚合人力,更高效的研发和响应以及发布,但H5的方式也存在一些重要问题。面对H5嵌入到APP框架的方式至少会碰到这些问题:安全性、拦截问题、加载慢、分发性、https限制,在一些硬件调用的场景还需要解决原生交互的问题。
实现架构
针对H5需要解决的问题以及H5本身存在的问题,在利用H5特性的同时原生APP框架也需提供部分通用API来弥补H5的问题。整体的实现从外到里用三层来实现:分发层、接口层、业务层。
-
分发层--架构层:
分发层将外部的访问请求进行转换和转派,可以利用ngnix来处理,需要处理和转换的请求包括http、https、ipv6,处理完后的请求根据分发规则到配置的Server服务上。外部页面集成接口和APP框架集成地址均配置ngnix的地址和端口。
特别对于二维码扫描,小程序嵌入等有https安全访问要求的情况,该层的转换显得尤为重要,利用nginx将外部的https请求转换成内部服务器间的http请求,应用集群可以使用统一的http服务配置.
- 接口层--嵌入层和安全控制层:
接口层是主要的应用入口层,模块上分为原生框架API和H5的Web应用接口。原生框架API包括获取设备信息、控制相机、控制音频,触摸点击、菜单事件、拦截以及异常反馈等API。H5的Web应用接口包括H5发布地址、H5集成界面、密钥控制、其它接口(webservice、http接口)、原生API交互。既要保证H5界面的访问性,又要保证H5页面的安全性。密钥控制针对H5的发布地址和H5的集成界面,对于URL的访问来源和时效性进行控制,H5发布地址的密钥串由原生框架创建,H5集成界面的接口的密钥由外系统创建传入。 H5的发布地址由原生框架的WebView进行URL嵌入访问。
对于原生框架的URL嵌入,android系统可以使用腾讯的TBS浏览服务,IOS使用UIWebView进行嵌入。原生框架最初可以提供最常用的API,之后再进行扩展,最常用的API如:IP等网络信息获取的API、拍照的API、设备规格信息获取的API。
- 业务层--业务逻辑实现:
业务层包含业务逻辑、接口调用,业务层与其它企业系统没有什么不同,但H5的业务层保持更简单的业务处理,复杂的业务处理通过接口调用其它系统实现。
对于业务层的原则,简单的逻辑DAO层直接操作DB处理,复杂的业务逻辑调用其它系统接口完成。
总结:对于H5构建APP在企业系统中的应用是可靠和效率的,但针对H5的缺陷也需结合原生APP的功能来进行弥补。
<small>坚持积累,坚持学习。</small>