RN与UNI小程序混编设计
一、背景
公司移动端不同业务线具有许多交叉业务,对于此类业务如果用App开发将增加时间成本,并且发版不灵活,所以将交叉业务用小程序的形式集成到App
二、开发方案对比
开发形式 | 人力成本(耗时) | 灵活性 | 用户体验 |
---|---|---|---|
App | ⭐️ | ⭐️ | ⭐️⭐️⭐️⭐️⭐️ |
H5 | ⭐️⭐️⭐️ | ⭐️⭐️⭐️⭐️⭐️ | ⭐️⭐️ |
小程序 | ⭐️⭐️⭐️ | ⭐️⭐️⭐️⭐️ | ⭐️⭐️⭐️⭐️ |
App版本发布不够灵活,人力成本高,h5的用户体验差一些
人力成本: app>小程序==h5
灵活性: h5>小程序>app
用户体验: app>小程序>h5
三、 混编SDK落地方案对比
调研市场上面的小程序集成方案
FinClip 小程序开放平台 | mPaaS 移动应用开发平台 | Unisdk | |
---|---|---|---|
产品定位 | 轻应用(小程序)平台,专注小程序 | App 开发、H5 开发、小程序开发一条龙服务 | uni-app 的生态补充,专注于 uni-app 小程序的集成 |
小程序技术标准 | 自有小程序标准,兼容对齐微信 | 支付包小程序标准 | uni-app开发的小程序 |
是否支持私有化 | 可私有化,掏钱就行 | 专有云客户可私有化 | 开源的 |
多端支持 | 支持 i0S、Android、Windows、Mac、Linux,国产信创、车载操作系统 | 只支持iOS、Android | 只支持 iOS、Android |
集成之后sdk体积增加 | 2-3M | 30M左右 | 7-16M |
IDE | 自有 IDE | 自有 IDE | HBuilder |
收费标准(来自官网) | 社区版、SaaS 版不要钱,私有化的要掏钱 | 三种收费模式: 预付费模式、资源包模式、后付费模式,可查看这里 | 不要钱,交个朋友,但是会通过广告联盟和其他运营服务收费,利用开源框架做了一些限制。 |
渲染技术架构 | 采用与微信一致的逻辑层与渲染层分离架构 | 采用 webview 或者原生渲染(React Native) | 采用 webview 或者原生渲染(React Native) |
客户案例(来自官网) | 国盛证券、华鑫证券、广发证券、东软... | 深圳农商银行、怪兽充电、上海地铁、悦刻... | CSDN App |
最终选用unisdk
uni小程序sdk集成:https://nativesupport.dcloud.net.cn/README
自动化打包:https://uniapp.dcloud.net.cn/quickstart.html#运行、发布uni-app
四、客户端更新流程
五、小程序持续集成
六、版本管理数据库核心字段
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
appid | String | 是 | 小程序的id (exp: UNI__CBDCE04__) |
appName | String | 是 | 小程序名 (exp: 农批宝) |
versionCode | int | 是 | 小程序应用版本号(exp:10 , 主要的版本更新依据) |
versionName | String | 是 | 小程序应用版本名(exp:1.0.0, 主要用于显示) |
七、方案落地工作
工作 | 资源 | 备注 |
---|---|---|
App小程序sdk集成 | 汪滔,iOS,安卓 | 1. 原生模块 2. 原生方法 3. 预加载小程序,小程序缓存管理,4. 小程序之间的跳转(默认不行,研究小程序唤起其他小程序,参考健康码打开行程码) |
版本管理接口 | 后端 | upload,checkVersion,listVersion |
web管理界面 | 前端 | 版本信息展示,上传 |
小程序自动化部署 | 汪滔,后端 | shell脚本,接口 上传wgt ,更新数据库版本记录 |
小程序基础业务架构搭建 | 汪滔 | 注意版本搭配,并且要支持自动化部署 |
八、打包出来的文件
九、落地过程中遇到的问题
- 第一次去下载,然后走更新流程,不打包在apk中
- 检查下载添加fileid字段