机器人租赁小程序开发最容易低估的就是"多端"两个字。同一个业务,小程序端、APP 端、管理后台的需求差异大到不像一个产品:小程序有包体和 API 限制,APP 要吃透设备能力,后台全是复杂表单和报表。这篇把我们在机器人租赁多端架构上的实践整理出来——端差异怎么分析、uni-app 和原生怎么混合、统一网关下不同端怎么管 token,以及小程序审核合规那些容易卡住上线的事。


一、多端差异分析:先把"不一样"列清楚再动手

动手写代码前,我们做了一张端差异分析表,事实证明这张表比后面所有架构图都重要:

维度小程序(用户端)APP(用户端+调度员端)管理后台(Web)
核心场景选机型、下单、查档期全部小程序功能 + 蓝牙绑定、离线查看、消息推送设备管理、订单履约、报表、租户配置
技术约束主包 ≤ 2MB、包体审核、部分 API 不可用(如强制 GPS 静默)原生插件、热更新受限、双平台审核无包体限制,但表单/表格复杂度极高
用户规模最大(获客入口)中(老客 + 员工)小(内部 + 商家)
变更频率高(营销活动驱动)高(规则配置驱动)

三个关键结论由此产生:小程序是主入口但约束最多,交互设计要围绕"下单转化"做减法;APP 的增量价值在设备能力(蓝牙、推送、离线),如果用不到这些,单独维护一个 APP 是浪费;后台的复杂度在表单和数据密度,选型上和移动端彻底分开。
在这里插入图片描述

二、uni-app 与原生混合策略:一套代码,两条边界

用户端和调度员端统一用 uni-app(Vue3 + TypeScript),一套代码编译到微信小程序和 APP。但"一套代码"不等于"无差别运行",我们划了两条边界:

边界一:平台差异下沉到适配层platform/ 目录里每个平台一个实现,页面只调统一接口:

// interface/device.ts —— 页面只看到这个抽象
export interface DeviceScanner {
  scanSnCode(): Promise<string>   // 扫设备 SN 码
  enableRealtimeLocate(): void    // 开启实时定位权限
}

// platform/mp-weixin.ts —— 小程序实现
// 扫码用 uni.scanCode,定位授权走小程序弹窗

// platform/app-plus.ts —— APP 实现
// 扫码走原生插件(带闪光灯控制和连续扫描),定位用系统级权限

边界二:重原生能力用插件,不自己造轮子。蓝牙连接机器人控制网关、离线缓存(调度员在信号差的展馆里也能查订单)这两块,直接采购/引入原生插件,uni-app 侧封装 JSBridge。评估过的替代方案是 Flutter,放弃原因是后台和营销页已有 Vue 技术积累,且小程序端 Flutter 支持成本高——跨端选型先数端,再数人

包体积控制是小程序端的持久战:echarts、地图 SDK、 富文本组件全部拆分包异步加载;主包只保留下单主链路(首页 → 机型详情 → 档期选择 → 下单),营销活动页全部走分包 + CDN 图片。最终主包 1.6MB,分包六个。

三、统一网关下的鉴权:不同端不同 token 策略

多端流量统一经过 Spring Cloud Gateway,但三个端的 token 策略刻意不同——安全等级和使用场景不一样:

token 方案有效期刷新机制
小程序wx.login 换 code2Session → 平台 JWT2 小时静默续期:401 时用 wx.checkSession 判断,无缝重登
APP账号密码/手机号 → JWT(access + refresh 双 token)access 2h / refresh 30drefresh token 旋转,检测到旧 refresh 复用即全端下线(防盗号)
管理后台RBAC 账号体系 → JWT + 按钮级权限码30 分钟活跃续期,30 分钟无操作失效

网关按请求路径前缀(/mp//app//admin/)识别端类型,套用不同的鉴权过滤器链:

// 网关路由片段:三端不同的过滤器链
route mp  → MpAuthFilter  (校验 JWT + 租户状态 + 微信会话有效性)
route app → AppAuthFilter (access token 校验 + 设备指纹绑定)
route admin → AdminAuthFilter (JWT + RBAC 权限码预校验 + 操作审计标记)

刷新机制的细节值得展开:APP 端 refresh token 旋转(每次刷新作废旧 token 换新)配合"旧 token 复用检测",一旦检测到已旋转的 refresh token 被再次使用,判定为 token 泄露,强制该用户全端下线。管理后台 30 分钟短有效期则是从客户信息安全审计要求出发——政企客户明确要求后台无操作自动登出。

多端还带来一个容易漏的问题:同一用户多端登录的会话一致性。用户在小程序下单后打开 APP 看进度,两端的用户态必须同源(统一 auth-service 签发),我们用 userId 维度的设备注册表管理多端会话,踢出策略按端独立(踢小程序不影响 APP)。

四、小程序类目资质与审核合规:上线前最容易卡住的事

技术都做完了,卡在审核环节是最冤的。机器人租赁小程序我们亲历过的合规要点:

  1. 类目选择:设备租赁属于"租赁服务"类目,需要企业提供《营业执照》且经营范围含租赁业务;如果涉及融资租赁属性的宣传话术(“以租代购”“租满即得”),会触发金融类审核,话术必须规避;
  2. 支付场景:租赁押金走微信支付分免押(需开通支付分服务)或普通支付的押金冻结逻辑,小程序内不得出现"押金分期"等表述;订单金额与押金要分开展示,退款路径清晰;
  3. 用户隐私:设备定位采集前必须有隐私协议弹窗 + 单独的定位授权,隐私接口(如 getLocation)在小程序后台逐项声明用途,2023 年后未声明直接被拒;
  4. 内容合规:机器人表演类营销视频在详情页展示时,注意人物肖像和 BGM 版权,审核时被投诉音乐侵权会直接下架整改;
  5. 审核周期预估:涉及新类目首次提审,实测多花 3-5 个工作日,上线排期要把这段时间留出来。

经验法则:第一次提审前,用小程序后台的"类目与资质"自查清单过一遍,比上线被拒再改快得多

五、总结:多端架构实践清单

  • 先做端差异分析表,端的价值定位决定投入比例,小程序是入口、APP 卖设备能力、后台管复杂度;
  • uni-app 落地的关键不是"一套代码",是平台差异强制下沉适配层 + 重原生能力用插件;
  • 三端 token 策略按安全等级差异化:小程序静默续期、APP 双 token 旋转防盗号、后台短有效期 + 审计;
  • 小程序合规要在第一次提审前自查,类目、押金话术、隐私声明是三大高发被拒点;
  • 多端会话同源于 auth-service,踢出策略按端独立。

我们在设备租赁与资产管理类系统的定制开发上有多年落地经验,小程序、APP、管理后台的多端架构和各端审核合规都趟过完整的坑。如果你也在规划机器人租赁或类似平台,欢迎交流,多端方案和提审清单可以帮你对一遍。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐