2016-08-18 54 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服務每天喚醒應用程序一次。 –

相關問題