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

React Native Expo问题:定时通知立即触发而非按设定时间执行

Expo定时通知立即触发的原因分析

以下是导致你的定时通知忽略时间参数、立即执行的常见原因:

  • 目标时间已过当日对应时刻
    当你仅通过hour和minute设置触发时间时,Expo默认会将触发时间定为当天的该时刻。如果当前时间已经晚于9点40分,通知会立即触发,因为系统认为“已到触发时间”。

  • 未明确指定日期导致逻辑偏差
    若你希望通知在未来的某个特定日期(比如明天9点40分)触发,仅传hour和minute是不够的。需要手动构建一个Date对象来指定完整的触发时间,例如:

    const triggerDate = new Date();
    triggerDate.setDate(triggerDate.getDate() + 1); // 设置为明天
    triggerDate.setHours(9, 40, 0, 0); // 设置时分秒
    
    Notifications.scheduleNotificationAsync({
      content: { title, body, data: { data: 'goes here', test: { test1: 'more data' } } },
      trigger: { date: triggerDate, repeats: false },
    });
    
  • 时区不匹配
    设备的本地时区与你预期的时区不一致时,会导致触发时间计算错误。比如你预期的是北京时间9点40分,但设备时区是UTC,此时计算出的触发时间可能已经过去,进而立即执行通知。

  • expo-notifications版本存在bug
    部分旧版本的expo-notifications库存在定时触发逻辑的问题,建议升级到最新的稳定版本,再测试通知功能。

内容的提问来源于stack exchange,提问作者Dominik Tužil

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 10:08:11