如何使用随机消息为当前日期的每周设置本地通知

时间:2016-08-18 06:46:29

标签: ios objective-c iphone uilocalnotification nsnotification

我想设置本地通知,每周安装应用程序时通知消息,通知消息将随机化。

// Notification Random Message Array
    messgeArray = [NSMutableArray arrayWithObjects:@"Welcome",@"Hello",@"How about you",@"Good Day",nil];

//每周通知

  NSDate *date = [NSDate date];
    NSDate *oneDaynotification = [date dateByAddingTimeInterval:60*60*24*7];
    UILocalNotification* localNotification = [[UILocalNotification alloc] init];
    srand((unsigned)time(NULL));
    localNotification.fireDate = oneDaynotification;
    randomMessage = [messgeArray objectAtIndex:arc4random() % [notificationArray count]];
    localNotification.alertBody = randomMessage;
    localNotification.soundName = UILocalNotificationDefaultSoundName;
    [[UIApplication sharedApplication] scheduleLocalNotification:localNotification];

在我改变系统时间之后,我没有看到任何通知消息,任何人都可以建议我如何每周实施一个通知触发器,并附带随机通知消息。

1 个答案:

答案 0 :(得分:0)

问题在于您取决于手机的时间和日期。出于您的目的,您可能必须连接到某个服务器才能获取日期时间。 您可能会遇到另一个问题,即如果用户没有打开该应用,那么您的应用可能无法运行任何代码,因此无法显示任何通知。

1.所以解决方案是设置推送通知服务器。 所以你可以做到这一点:

  • 向服务器和iDevice(Tutorial)设置推送通知。
  • 在服务器中创建一个逻辑,以便第一次应用程序注册并发送设备令牌ID,同时保存日期时间。
  • 在服务器中运行Cronjob(what is it?)应用程序,该服务器将获取日期和时间并根据设备令牌发送消息。

2.如果您想在手机中进行此操作而不依赖于服务器。 以下是您必须关注的事项:

  • 制作逻辑,将日期和时间保存在数据库或用户首选项中。
  • 添加任何后台服务,以便每天从暂停模式唤醒应用程序。
  • 计算日期并显示推送通知。