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

如何获知Node.js后端发送的通知已被Android/iOS移动端接收——实现类WhatsApp聊天已读功能的技术问询

解决方案思路:APP被杀死时实现通知已读状态同步到Node.js后端

我来分享几个经过验证的可行思路,帮你解决APP被杀死时通知已读状态同步到Node.js后端的问题——核心是结合推送服务的回执机制和客户端的唤醒上报,来实现类似WhatsApp的已读追踪:

  • 利用推送服务的「送达回执」做第一步确认
    对于Android,Firebase Cloud Messaging(FCM)支持启用delivery_receipt_requested参数,当通知成功送达设备时,FCM会向你的Node.js后端发送回调;iOS的APNs也提供了类似的回执机制,设备接收到通知后会主动告知APNs,APNs再把这个送达状态同步给你的后端。
    注意:这个回执仅代表通知到了设备,不代表用户已查看,所以这是「已送达」状态的依据,而非「已读」。

  • 用户点击通知时触发即时上报
    当用户点击通知(哪怕APP之前被完全杀死),Android和iOS都会唤醒APP的指定入口(Android的PendingIntent绑定的Activity、iOS的通知响应回调)。你可以在这个唤醒逻辑里,立刻向Node后端发送请求,标记对应消息为「已读」。
    举个Android的简单实现示例:

    // 点击通知后启动的Activity
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 从通知携带的Intent中获取消息ID
        String targetMessageId = getIntent().getStringExtra("msg_id");
        // 向后端发送已读上报
        OkHttpClient client = new OkHttpClient();
        RequestBody body = RequestBody.create(
            MediaType.parse("application/json"),
            "{\"messageId\":\"" + targetMessageId + "\",\"userId\":\"当前用户ID\"}"
        );
        Request request = new Request.Builder()
            .url("https://your-backend-domain/api/mark-as-read")
            .post(body)
            .build();
        client.newCall(request).enqueue(new Callback() {
            // 处理上报结果,比如本地缓存状态更新
        });
    }
    

    iOS则可以在UNUserNotificationCenterDelegate的didReceiveNotificationResponse方法中执行类似的上报逻辑。

  • APP重启时的批量状态同步
    不管用户是通过点击通知还是手动打开APP,只要APP重新启动,就拉取所有未标记为已读的消息列表,然后批量向后端发送已读状态上报。这可以作为即时上报的补充,避免因为网络波动导致的单次上报失败。

  • 后端的状态幂等处理
    你的Node.js后端需要维护消息的三种核心状态:pending(待发送)、delivered(已送达设备)、read(已读)。当收到推送服务的送达回执时,更新为delivered;当收到客户端的已读上报时,更新为read。同时要处理重复上报的情况——比如用户多次点击同一个通知,后端要根据messageId+userId做幂等判断,避免重复修改状态。

  • iOS静默通知的辅助方案
    如果你的APP被允许后台刷新,还可以给iOS发送携带content-available: 1的静默通知,唤醒APP的后台进程,在后台完成消息的已读上报。不过iOS对后台唤醒的限制非常严格,这种方式只能作为辅助,不能依赖它来实现100%的实时同步。

内容的提问来源于stack exchange,提问作者abdallah Nader

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 14:04:07