You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter实现客户下单后向员工推送带订单数据通知的方法

Flutter 跨角色订单通知功能实现方案

你现有已经完成订单卡片组件的前提下,整个功能分四个部分落地即可,不需要重构现有业务代码:

核心逻辑前提

推送触发逻辑必须放在服务端实现,禁止在客户端直接给其他用户发推送,避免接口被伪造产生垃圾通知。客户侧只需要负责提交订单数据,服务端确认订单入库成功后,自动向对应权限的员工账号推送消息。

1. 推送通道选型

根据员工端APP的运行状态选对应通道,保证消息送达率:

  • 前台运行状态:用WebSocket长连接传输,延迟最低,适合员工在岗实时接单场景
  • 后台/进程被杀状态:对接系统级推送通道,安卓端接入各厂商官方推送、iOS端接入APNs,不需要应用保活也能收到消息

2. 客户侧逻辑改造

你已经写好确认订单按钮,只需要在按钮的点击回调里补全逻辑:

  • 把当前订单卡片绑定的完整订单数据(订单编号、商品明细、金额、客户联系方式、配送地址等)按后端接口规范组装,调用订单提交接口
  • 等接口返回订单提交成功的状态后,做页面跳转/成功提示即可,不需要客户端处理推送动作,推送全由服务端触发

3. 员工端通知接收与渲染

前台在线场景处理

  • 员工端APP启动登录完成后,立即初始化WebSocket长连接,连接时携带员工身份鉴权Token,服务端通过Token标记该连接对应的员工账号、接单权限
  • 监听WebSocket的消息流,收到消息后先解析消息类型,如果是新订单通知:
    1. 把消息体里携带的订单数据解析成你现有业务用的订单模型
    2. 把新订单数据插入本地订单列表的最顶部
    3. 调用本地通知插件触发系统通知栏提醒,配置提示音、震动,避免员工漏单
      参考代码片段:
    // WebSocket新订单消息监听
    webSocketChannel.stream.listen((rawMsg) {
      final msg = jsonDecode(rawMsg);
      // 只处理新订单类型的消息
      if (msg['msgType'] == 'new_order_notice') {
        // 直接复用现有订单模型解析数据
        final OrderData newOrder = OrderData.fromJson(msg['orderContent']);
        // 更新本地订单列表状态
        orderStateController.addNewOrder(newOrder);
        // 弹出系统通知栏提醒
        localPlugin.show(
          newOrder.orderId.hashCode,
          '新订单待接单',
          '订单金额¥${newOrder.totalAmount} | ${newOrder.customerPhone}',
          platformChannelSpecifics,
          payload: newOrder.orderId
        );
      }
    });
    
  • 应用内收到新订单时,直接把解析好的订单数据传入你已经开发完成的订单卡片组件即可,不需要重新开发通知UI。用户点击通知栏消息时,直接携带订单ID跳转到对应订单详情页。

后台/离线场景处理

  • 员工端登录成功后,获取当前设备的推送Token,上传到服务端和当前员工账号做绑定
  • 服务端发在线推送的同时,如果检测到员工账号当前没有活跃的WebSocket连接,就走系统推送通道发离线消息,消息体里同样携带完整订单数据
  • 用户点击离线推送启动APP时,解析推送携带的订单数据,直接跳转对应订单页即可

4. 必要权限配置

否则通知无法正常弹出:

  • 安卓端:在AndroidManifest.xml中声明网络权限、通知权限,安卓13及以上版本需要在运行时动态申请POST_NOTIFICATIONS权限
  • iOS端:在Info.plist中配置通知权限项,APP首次启动时弹出权限申请弹窗,引导用户开启通知权限

内容的提问来源于stack exchange,提问作者Hagar Nasser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 21:30:23