如何设置本地通知以每 48 小时通知用户一次?

     2023-02-24     170

关键词:

【中文标题】如何设置本地通知以每 48 小时通知用户一次?【英文标题】:How can I set a local notification to notify user after every 48 hours? 【发布时间】:2014-01-25 07:22:18 【问题描述】:

在 iOS 中,我想安排一个通知,在用户关闭应用程序后 48 小时后通知他。除了 48 小时,它还必须在晚上 7 点显示。当天。

例如: 当前时间是下午 5 点,用户关闭应用。然后通知应该在 2 天后下午 5 点弹出,但我希望它延迟到晚上 7 点。为了达到上述标准,我应该如何编写代码?

【问题讨论】:

你知道要延迟多少小时吗?如果是,那么您可以在安排通知时添加该时间延迟。 【参考方案1】:

- (void)applicationWillResignActive:(UIApplication *)application方法中,

    计算要显示的实际时间,即 48 小时 + 小时到当天晚上 7 点。 取消任何当前预定的通知 创建一个UILocalNotification 并设置所需的参数(触发时间和警报文本)。

根据评论编辑:

如果我理解你,这应该是你想要的。它会计算 48 小时后的时间,并手动将点火时间设置为晚上 7 点。如果计算的时间大于晚上 7 点,则会在第二天被解雇。


NSDate *currentDate = [NSDate date];
NSDate *futureTime = [currentDate dateByAddingTimeInterval:60*60*48];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSTimeZone *timeZone = [NSTimeZone systemTimeZone];
[calendar setTimeZone:timeZone];

NSDateComponents *components = [calendar components:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit fromDate:futureTime];
if ([components hour] >= 19)  // make it the next day 
    [components setDay:[components day] + 1 ];

[components setHour:19];
[components setMinute:00];
NSDate *alertTime = [calendar dateFromComponents:components];

【讨论】:

第一点是我卡住的地方。我知道如何获得 48 小时,但直到晚上 7 点我才知道时差有多大【参考方案2】:
   NSDateFormatter *DateFormatter=[[NSDateFormatter alloc] init];
    [DateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSDate *date =[NSDate dateWithTimeInterval:60*60*48 sinceDate:[NSDate date]];
    NSString *dateString=[DateFormatter stringFromDate:date];

    NSInteger timeLater=[dateString substringWithRange:NSMakeRange(11, 2)].integerValue;
    if(timeLater<19)
        date =[date dateByAddingTimeInterval:(19-timeLater)*60*60];
    dateString=[DateFormatter stringFromDate:date];
    NSLog(@"%@",dateString);


notification.fireDate =date.

【讨论】:

我想知道如何计算“差异”?

如何设置在第一次设置通知后每秒钟触发一次的本地通知?

】如何设置在第一次设置通知后每秒钟触发一次的本地通知?【英文标题】:HowcanIsettheLocalnotificationwhichfireeverysecondsafterfirstsetnotification?【发布时间】:2017-07-2105:42:35【问题描述】:我想要什么,我将本地通知设置为上午7:00,当... 查看详情

iOS 如何按天、周和每小时 Swift 创建计划本地通知

】iOS如何按天、周和每小时Swift创建计划本地通知【英文标题】:iOSHowtocreateschedulelocalnotificationbydays,weeks,andhourlySwift【发布时间】:2018-08-1306:29:15【问题描述】:我想为用户创建一个时间表,目前,我知道如何创建一个特定的时... 查看详情

本地通知 - 重复间隔/自定义时间不起作用

...钟或1小时)或每15分钟工作一次。如何为每小时重复间隔设置偏移 查看详情

如何设置每两周一次的本地通知

】如何设置每两周一次的本地通知【英文标题】:howtosetlocalnotificationforeverytwoweeks【发布时间】:2016-08-1010:18:48【问题描述】:如何每两周触发一次本地通知?我所做的是:UILocalNotification*localNotification=UILocalNotification.new;localNotifi... 查看详情

如何将本地通知重复间隔设置为自定义时间间隔?

】如何将本地通知重复间隔设置为自定义时间间隔?【英文标题】:HowtosetLocalNotificationrepeatintervaltocustomtimeinterval?【发布时间】:2010-12-0606:30:22【问题描述】:我正在制作一个需要本地通知的iPhone应用。在本地通知中有repeatInterv... 查看详情

iOS 11-每 x 分钟重复一次的用户本地通知

...s【发布时间】:2017-09-0711:02:42【问题描述】:在iOS11中,如何实现每x分钟重复一次的本地通知?重复间隔将由用户选择。例如,假设用户选择设置一个通知,该通知将在明天上午9:00触发,并从那里每2天(或两周、6个月或10分钟... 查看详情

当用户没有选择开始日期时,如何创建循环本地通知?

】当用户没有选择开始日期时,如何创建循环本地通知?【英文标题】:Howdoicreatealoopinglocalnotificationwhentheuserdoesn\'tchooseastartingdate?【发布时间】:2011-01-2415:36:21【问题描述】:在我的应用程序中,用户选择一天(周一至周日)... 查看详情

如何在固定时间发送推送通知?

】如何在固定时间发送推送通知?【英文标题】:Howtosendapushnotificationforafixedhour?【发布时间】:2015-07-0110:35:07【问题描述】:我是新的IOS开发人员,以前从未使用过推送通知或本地。用户需要设置一个小时,用于接收推送通知... 查看详情

Swift:本地通知提前 1 小时安排

】Swift:本地通知提前1小时安排【英文标题】:Swift:LocalNotificationsgetscheduled1hearlier【发布时间】:2019-03-2922:47:06【问题描述】:我试图在用户第一次打开应用程序时安排一系列通知,所以我有以下代码,但问题是它们被安排在18:... 查看详情

如何将事件侦听器添加到本地反应原生通知

】如何将事件侦听器添加到本地反应原生通知【英文标题】:Howtoaddeventlistenertolocalreactnativenotification【发布时间】:2017-07-2904:27:45【问题描述】:目标我在我的reactnative应用程序中设置了一个本地通知时间表,每小时一次。但是... 查看详情

停止本地通知

】停止本地通知【英文标题】:Stoplocalnotification【发布时间】:2012-07-2307:28:21【问题描述】:下面有个问题:当通过按主页按钮将应用程序最小化到后台时,创建一个本地通知以每5分钟弹出一次。从后台删除应用程序。-->我... 查看详情

如何一次在本地通知中将日期数组设置为fireDate

】如何一次在本地通知中将日期数组设置为fireDate【英文标题】:howtosetarrayofdatetofireDateinlocalnotificationatatime【发布时间】:2017-03-0711:31:22【问题描述】:实际上,在我的应用中,我在不同时间启动了两个以上的计时器。在某些时... 查看详情

如何设置 cron 作业以每小时运行一次可执行文件?

】如何设置cron作业以每小时运行一次可执行文件?【英文标题】:Howtosetupacronjobtorunanexecutableeveryhour?【发布时间】:2011-03-2907:20:36【问题描述】:我需要设置一个cron作业,每小时运行一次使用gcc编译的可执行文件。我以root身份... 查看详情

iPhone sdk:如何增加本地通知计数

】iPhonesdk:如何增加本地通知计数【英文标题】:iPhonesdk:howtoincreasethelocalnotificationcount【发布时间】:2011-03-1205:45:05【问题描述】:您好,我正在使用Google日历,当活动开始时,我必须在本地通知中保留用户活动。为此我必须显... 查看详情

如何在 swift [iOS] 中从特定时间开始发送本地通知 UNTimeInterval

】如何在swift[iOS]中从特定时间开始发送本地通知UNTimeInterval【英文标题】:HowtosendlocalnotificationUNTimeIntervalstartingatspecifictimeinswift[iOS]【发布时间】:2019-07-1615:15:18【问题描述】:我想从特定时间开始每8小时发送一次本地通知。例... 查看详情

如何设置首次设置通知后每秒触发的本地通知?(代码片段)

我想要的是,我将当地通知设置为早上7点,并立即点火,通知会持续发出,直到用户不对通知执行任何操作或打开应用程序。以下是第一次发送通知的代码letalarmNotification:UNMutableNotificationContent=UNMutableNotificationContent()alarmNotificati... 查看详情

安排每小时重复本地通知的问题

】安排每小时重复本地通知的问题【英文标题】:Probleminschedulingrepeatinglocalnotificationeveryhour【发布时间】:2019-09-1518:59:39【问题描述】:我正在尝试每小时安排一次本地通知。问题是我在如此不规则的时间内收到通知。有时在10... 查看详情

通过用户设置自定义 ui 本地通知

...etting【发布时间】:2012-12-0922:02:16【问题描述】:我知道如何在AppDelegate的applicationDidEnterBackground函数中进行本地通知。-(void)applicationDidEnterBackground:(UIApplication*)applicationUILoca 查看详情