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

React Native 如何配置通知实现每周四15:00定时推送

解决方案

你使用的react-native-push-notification库原生支持按周期重复推送的能力,仅需要在原有配置基础上新增重复规则、同时将首次触发时间调整为目标时间即可实现每周四15:00推送的需求。

修改后完整代码

// 工具函数:自动计算下一个周四15:00的日期对象,避免硬编码固定日期失效
const getNextThursday15 = () => {
  const now = new Date();
  const currentDay = now.getDay(); // 系统方法返回值:周日为0,周四为4
  // 计算距离下一个周四的天数
  const daysUntilThursday = currentDay < 4 
    ? 4 - currentDay 
    : 4 + (7 - currentDay);
  const nextThursday = new Date(now);
  nextThursday.setDate(now.getDate() + daysUntilThursday);
  // 固定时间为15点整
  nextThursday.setHours(15, 0, 0, 0);
  // 兼容当天是周四但已过15点的场景,自动顺延到下一周
  if (nextThursday < now) {
    nextThursday.setDate(nextThursday.getDate() + 7);
  }
  return nextThursday;
}

const pushNoti1 = () => {
PushNotification.localNotificationSchedule({
  channelId: "test-channel",
  title: "Неблагоприятный день для:",
  message: "Today is Thursday",
  date: getNextThursday15(), // 替换为动态计算的首个触发时间
  id: 1,
  repeatType: 'week', // 核心配置:指定按周重复触发
  allowWhileIdle: true, // 可选配置:设备低功耗 idle 状态下也可触发通知
});
}

核心配置说明

  • repeatType:库内置支持的重复周期参数,可选值包括minute/hour/day/week/month/year,设置为week即可实现按周重复。

注意事项

  • 安卓端需要提前创建对应channelId的通知通道,否则通知无法正常展示
  • 推送前需要先向用户申请通知权限,权限未授予的情况下通知无法弹出
  • 若后续需要取消该重复通知,调用PushNotification.cancelLocalNotification(1)即可,参数对应配置的通知id
  • 若需要全局统一时区触发,可以在计算日期时修正时区偏移,避免不同地区用户触发时间不一致

内容的提问来源于stack exchange,提问作者Мухаммаднакшубанди Омаров

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 18:27:03