2016-08-18 55 views
0

我想设置本地通知每周通知消息,安装应用程序时通知消息将随机化。如何使用随机消息从当前日期开始每周设置Localnotification

// 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]; 

后,我改变我的系统时间,我没有看到任何通知消息,任何一个可以建议我如何每周执行一个通知触发随机通知消息与它。

+0

http://stackoverflow.com/questions/24874160/weekly-local-notification – user523234

回答

0

问题是你是根据手机的时间和日期。出于您的目的,您可能必须连接到某个服务器才能获取日期时间。 还有另外一个问题,你可能会遇到,也就是说,如果用户没有打开应用程序,那么你的应用程序可能不会运行任何代码,因此不会显示任何通知。

1.因此,解决方案将设置推送通知服务器。 因此,这里是你可以做什么:

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

2.如果你想在手机本身做到这一点,而不依赖于服务器然后。 这里有你有事情要关注:

  • 做一个逻辑,保存在数据库或用户喜好的日期和时间。
  • 添加任何后台服务以每天从暂停模式唤醒应用程序一次。
  • 计算日期并显示推送通知。
+0

在我的情况下,没有推送通知将被使用。 – kiran

+0

好吧,那么你可能不得不使用数据库来保存它第一次运行的日期时间,并且每天检查是否从保存日期6天过去了。 使用CLVisit和locaiton服务每天唤醒应用程序一次。 –

相关问题