某省级政务服务APP准备增加鸿蒙客户端,面临最大的问题不是如何从零开发一个鸿蒙APP,而是如何复用已有的资源,类似于社保、医保、税务、企业服务、办事预约、材料提交、预约这些业务在iOS和安卓端已经运行,页面和业务接口也经历过多轮调整,如果全部重新开发,技术层面是一方面,更麻烦的是还需要重新对接一边,需要花费大量的时间调试成本。

例如办事预约来说,用户无论是iOS、安卓还是鸿蒙APP,都是要选择事项、查看可预约时间、填写信息,再拿到预约结果。事项规则和办理流程没有跟着操作系统改变。如果能够把已有业务继续用起来,那鸿蒙开发团队的精力都可以放在新客户端打磨体验上。

今天分享一个新的技术路径:借助FinClip复用已有的小程序、H5页面:鸿蒙APP接入小程序运行能力,业务团队沿用已有页面与逻辑,再把登录、导航等客户端能力接好,无需二次开发就能快速完成APP的上架工作。

在这里插入图片描述

复用已有页面与接口,减少鸿蒙端重复开发

预约页面上的事项名称、办理地点、日期选择和表单校验,已经承载了不少业务积累。比如某个大厅周末不开放、某类事项需要补充联系人,这些规则散落在页面逻辑和后台配置里。重新做一套鸿蒙原生页面,后续每次调整都要考虑多份实现之间的同步。

那借助小程序容器,已有小程序可以沿用页面结构、业务逻辑和接口调用,在鸿蒙客户端集成FinClip SDK后接入运行。业务团队继续维护预约小程序,鸿蒙团队负责把它接进APP的事项入口。

如果预约服务原本采用H5,也可以保留现有页面,通过小程序内的web-view加载。页面中原来调用iOS或安卓宿主的登录、返回等接口,则接到鸿蒙端对应的公共能力。页面与接口复用的同时,把与操作系统有关的工作集中到客户端适配上。

原有原生插件和宿主桥接由鸿蒙团队补充对应实现,小程序涉及的组件、API也按鸿蒙运行环境完成适配。

团队梳理存量服务时,可以按事项整理页面入口、业务接口和宿主调用。这样就能看清一项预约中哪些代码继续维护,哪些调用由鸿蒙客户端补齐,开发排期也能对应到具体工作。

已有资产复用方式鸿蒙端的工作
预约小程序沿用页面、逻辑和接口调用接入运行环境,适配端侧差异
H5预约页面保留页面,通过web-view承载衔接登录、返回等桥接调用
预约业务后台共用号源、规则和预约记录接通原有接口与身份体系
APP宿主能力沿用能力定义与调用约定实现鸿蒙端登录、导航等能力

预约后台继续服务新客户端,号源由同一个系统管理,预约提交和取消沿用原有接口。鸿蒙端接入原预约系统后,业务部门照常维护事项,办理地点和可预约时间仍由原有后台配置。

统一登录与导航接口,减少重复对接工作

用户从鸿蒙APP首页进入预约页面时,通常已经完成了政务账号登录。预约服务可以通过宿主提供的公共接口取得业务所需的身份上下文,再由预约后台按统一用户标识处理查询与提交。市民进入新的事项页面,沿用的是APP里已经完成的登录过程。

FinClip支持通过自定义API,让小程序调用宿主APP提供的能力。对政务APP来说,可以把登录、返回事项列表、打开消息中心等能力整理成公共接口。小程序按约定发起调用,各端客户端完成对应的原生实现。

例如,预约页面提交成功后,需要回到“我的预约”。业务代码只负责发起这项操作,鸿蒙宿主负责打开正确的客户端页面。iOS和安卓端也遵循同一套调用约定,预约页面就能保持相同的业务处理方式。

登录、返回和消息跳转的参数及结果格式在三端保持一致后,材料申报、进度查询也能沿用这些接口。遇到登录过期,业务页面发起重新登录,由宿主衔接现有认证流程。把这层衔接做好,比为每个事项单独处理一次登录和导航更省事。

预约表单到了鸿蒙端,输入框被键盘挡住、返回按钮回到错误层级,都会影响用户完成操作。客户端团队处理好导航和窗口交互,业务团队检查日期选择、表单填写和提交结果,双方围绕同一条预约流程完成联调。

在这里插入图片描述

共用身份与预约后台,换端也能查询已有预约

在一个省级政务服务APP里,同一个预约入口可能服务不同地区和大厅。鸿蒙首页点击某个事项后,客户端根据事项配置打开对应的小程序页面,带入事项和地区等启动参数。预约页面继续使用原有接口查询办理地点与可用时间。

用户选好日期并提交信息,后台生成预约记录,页面展示预约编号和办理提示。回到“我的预约”时,客户端仍按同一用户身份查询业务后台。整个过程里,鸿蒙负责提供新的使用入口,已有预约服务继续完成业务处理。

两个客户端共用身份体系和预约后台后,市民在iOS或安卓端提交的预约,也可以在鸿蒙端查询。记录归属于同一个业务账号,换设备后仍能查看办理时间和取消状态。对用户来说,政务服务的连续性比页面是否重新开发更有感知。

项目验收也可以沿着这条流程展开:从事项入口进入,完成登录衔接,选时间、填信息、提交,再回到记录列表查看结果。双方对照完整的预约结果,就能检查新客户端是否已经接好现有服务。

在这里插入图片描述

一套业务代码集中维护,减少三端重复修改

鸿蒙端上线以后,业务部门还会增加办理地点、调整预约提示,或者给表单补充字段。采用共用业务代码的方式,这些变化可以在预约小程序中集中维护,再在各端检查相应的展示和交互。

FinClip的小程序管理平台可以承接版本上传、审核和发布。预约页面的业务更新走小程序版本,客户端新增原生能力或升级SDK则安排APP版本。业务团队和客户端团队按各自的工作对象推进,预约提示改几个字,也能有自己的更新节奏。

对于多个部门共同建设的省级政务APP,这种分工还有一项实际收益:原来负责事项的团队可以继续维护自己的业务。鸿蒙团队把运行环境和公共接口接好后,各部门沿用同一套接入方式交付服务,减少逐项重新解释流程、重新开发页面的工作。

下一次部门增加预约事项,业务团队提交的仍是一套页面和业务逻辑。FinClip将这项服务接入不同客户端,鸿蒙团队沿用已经接好的公共能力,市民在新手机上继续完成熟悉的办事流程。已有事项积累下来的代码和经验,也能随着新客户端继续发挥作用。

感兴趣的话,可以关注了解更多技术细节~

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐