- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想创建具有自定义间隔重复(例如每 20 天)的本地通知。我知道我们有 NSDayCalendarUnit、kCFCalendarUnitMonth ...但我希望将重复间隔设置为 20 天。我不想每天都创建通知。
我真正需要的是连续 21 天重复通知,然后在 7 天后不启动它,然后是新的 21 天有通知和 7 天没有通知......等等。即使应用程序处于非事件状态,我也应该安排所有这些天。
为此,我决定创建一个 21 条通知,自触发日期起,repeatInterval = 28days(这里是问题所在)
最佳答案
试试这个,您可以通过选择 setDay
、setMonth
、.... 来更改间隔:
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [[NSDateComponents alloc] init];
[components setDay:3];
NSDate *date3Days = [calendar dateByAddingComponents:components
toDate:[NSDate date]
options:0];
UIApplication* app = [UIApplication sharedApplication];
NSArray* oldNotifications = [app scheduledLocalNotifications];
if ( oldNotifications ) {
[app cancelAllLocalNotifications];
app.applicationIconBadgeNumber = 0;
}
UILocalNotification* notifyAlarm = [[UILocalNotification alloc] init];
if (notifyAlarm) {
notifyAlarm.fireDate = date3Days;
notifyAlarm.timeZone = [NSTimeZone defaultTimeZone];
notifyAlarm.alertBody = NSLocalizedString( @"Push message", @"");
notifyAlarm.soundName = @"sound.wav";
[app scheduleLocalNotification:notifyAlarm];
}
如果你想设置一个特定的时间,之后 UILocalNotifications
应该出现,你可以创建一个上述解决方案的方法并循环一个数组,它指示你想要显示通知的日期:
NSArray *arrayNumbers = @[@5, @7, @14, @21, @30, @60, @90, @120];
NSDictionary *dictNotifications =
[[NSUserDefaults standardUserDefaults] objectForKey:kUserDefAppStarts];
for ( NSNumber *bla in arrayNumbers ){
NSString *strKey = [NSString stringWithFormat:@"%@%@", kUserDefAppStarts, bla];
NSDictionary *dict = dictNotifications[strKey];
NSString *strMessageQuestion = dict[kKeyMessage];
[self createNotificationWithNumberOfDays:[bla integerValue]
andMessage:strMessageQuestion
userInfo:dict];
}
这是你必须调用的方法
+ (void)createNotificationWithNumberOfDays:(int)days
andMessage:(NSString *)message
userInfo:(NSDictionary *)dict{
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [[NSDateComponents alloc] init];
[components setDay:days];
NSDate *dateAlert = [gregorian dateByAddingComponents:components toDate:[NSDate date] options:0];
UIApplication *app = [UIApplication sharedApplication];
UILocalNotification *notifyAlarm = [[UILocalNotification alloc] init];
if( notifyAlarm ){
[notifyAlarm setFireDate:dateAlert];
[notifyAlarm setTimeZone:[NSTimeZone defaultTimeZone]];
[notifyAlarm setSoundName:@"soundname"];
[notifyAlarm setAlertBody:message];
[notifyAlarm setUserInfo:dict];
[app scheduleLocalNotification:notifyAlarm];
}
关于ios - UILocalNotification repeatInterval 20 天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27424003/
我想将重复间隔设置为用户从日期选择器中选择的值。我的应用程序中有倒计时模式类型的日期选择器。如果用户从日期选择器中选择 4 小时 15 分钟,那么我将使用以下代码设置 firedate和闹钟。 [N
好的,所以我看到几篇帖子说你不能设置 UILocalNotification重复多于或少于几个给定的选项(每分钟/小时/天/周/月等)。 但是,这些帖子都没有解决 repeatInterval 的设置
我正在发出本地通知警报 (iOS 5),它将定期(每分钟)重复其提醒,直到用户通过在 UILocalNotification 上设置 repeatInterval 来确认它实例添加到 [[UIAppl
当使用 repeatInteval 时,无论是否设置为分钟/天/小时等,通知都会一个接一个地推送。 它似乎工作正常,直到我每隔几秒测试一次,现在设置不会改回原样。有什么理由吗? var dat
我正在尝试安排重复的本地通知,并将应用程序角标(Badge)编号设置为到目前为止在任何给定时刻安排的实际通知数量。 由于显然无法为每次出现的通知设置不同的角标(Badge)编号,我只能看到 3 种解决
几个星期以来,我一直在为这个问题绞尽脑汁。 如果我将 UILocalNotification 的 repeatInterval 属性设置为非固定间隔会怎样? (非固定是指 NSWeekdayCalen
我想创建具有自定义间隔重复(例如每 20 天)的本地通知。我知道我们有 NSDayCalendarUnit、kCFCalendarUnitMonth ...但我希望将重复间隔设置为 20 天。我不想每
概览 我正在根据 UILocalNotification 的现有实例创建通知 现有实例已将 repeatInterval 设置为 NSWeekdayCalendarUnit 我想做什么 我想将repe
如何将 UILocalNotification 设置为每两天、每三天等重复...?不使用默认的 NSCalendarUnits? 最佳答案 不能重复,两天之内,Localnotification只允许
我正在尝试为一周中特定几天的提醒创建本地通知。 这就是我到目前为止所做的事情 let calender = NSCalendar.currentCalendar() let notif
如果我创建一个UILocalNotification并将其fireDate设置为过去并使用repeatInterval,那么将来下次repeatInterval到期时它会触发吗?或者 UILocalN
我在我的应用程序中安排了一批通知,一些具有重复间隔,另一些只是在特定日期触发一次。我正在使用此方法设置我的通知以创建通知: func notification(date: Date, repeatUn
在 UILocalNotification 中,我们像重复一样使用 NSCalendarUnitMinute ..... 但我在 iOS 10 中找不到 UserNotification doc ..
NSMonthCalendarUnit 的行为如何与 UILocalNotification repeatInterval 完全相关? 查找下个月的同一天? 或 查找 30 天后的日期? 例如:如果我
我是一名优秀的程序员,十分优秀!