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

React Native Expo配送应用后台及关闭状态新订单提醒功能实现求助

React Native Expo 配送员应用新订单提醒实现方案

核心逻辑说明

App 处于后台或被关闭时,前端代码无法持续运行,因此不要在前端做接口轮询,所有触发逻辑由后端完成,依赖系统级推送服务实现全场景提醒。你现有的布尔值判断接口无需修改,直接给后端调用即可。

具体实现步骤

1. 依赖安装

首先安装需要的官方库:
npx expo install expo-notifications expo-av expo-haptics expo-task-manager expo-background-fetch

2. 前端权限与推送配置

  • App 启动时优先申请三类权限:通知权限、振动权限、后台刷新权限,安卓端需要额外申请高优先级通知渠道权限,iOS 端需要在 Xcode 配置中开启「后台通知」「后台刷新」能力。
  • 启动后获取设备的 Expo Push Token,上传到你的后端和对应配送员账号绑定,后续后端发推送时用该 Token 定位设备。
  • 安卓端单独配置高优先级通知渠道,避免高版本安卓系统拦截提醒:
if (Platform.OS === 'android') {
  await Notifications.setNotificationChannelAsync('new-order', {
    name: '新订单提醒',
    importance: Notifications.AndroidImportance.MAX,
    vibrationPattern: [1000, 500, 1000, 500, 1000],
    sound: 'order_alert.wav',
    enableVibration: true,
  });
}

3. 分场景提醒逻辑处理

  • 前台运行状态:收到推送后直接调用 expo-haptics 触发振动,调用 expo-av 播放预设的提示音,无需走系统通知栏,响应速度更快。
  • 后台运行状态:系统自动展示通知栏通知,你只需在推送 payload 中配置 sound: "default"(或自定义提示音)、振动序列参数,系统收到推送后会自动触发响铃和振动。
  • 已关闭状态:只要用户没有禁止 App 的推送权限,系统会和后台状态一样自动处理推送,弹出通知、触发振动和响铃。

4. 兜底逻辑配置

如果担心推送出现漏发,可以用 expo-task-manager + expo-background-fetch 配置后台轮询任务,设置15-60秒的间隔调用你现有的布尔接口,当接口返回 true 时本地触发提醒,该逻辑仅覆盖 App 后台运行的场景,作为推送的兜底补充。

5. 后端逻辑调整

后端定时轮询你现有的布尔值接口,当接口返回 true 时,调用 Expo 推送发送接口,传入对应用户的 Push Token、通知标题内容、声音振动参数即可,原有业务接口无需修改。

内容的提问来源于stack exchange,提问作者Tejas Sanjay Chaudhari

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 13:39:01