如何设置uilocalnotification为固定日期?

时间:2011-05-21 06:06:43

标签: iphone

我想为下午6:00开始的程序设置本地通知。为此我已经花时间在日期变量中,我将它与系统中的当前日期进行比较。

假设setDate是固定日期,即下午6点,所以我必须设置fireate,以便在程序启动30分钟之前显示通知。我见过的例子是,根据currentdate设定了火药。

有人可以告诉我如何根据我的固定日期设置炒作?

3 个答案:

答案 0 :(得分:2)

以这种方式触发本地通知

UILocalNotification *localNotif = [[UILocalNotification alloc] init];
         if (localNotif == nil)
         return;
         localNotif.fireDate = [NSDate date];// Now here you can manage the fire time.
         localNotif.timeZone = [NSTimeZone defaultTimeZone];
         // Notification details
         localNotif.alertBody = @"BusBuddy";
         // Set the action button
         localNotif.alertAction = @"View";
         localNotif.soundName = UILocalNotificationDefaultSoundName;
         localNotif.applicationIconBadgeNumber = 1;
         // Specify custom data for the notification
         NSDictionary *infoDict = [NSDictionary dictionaryWithObject:@"You are near to reach the Bus Stop" forKey:@"someKey"];
         localNotif.userInfo = infoDict;
         // Schedule the notification
         [[UIApplication sharedApplication] scheduleLocalNotification:localNotif];
         [localNotif release];

这行代码适合您。你只需要提供这个

的日期时间
localNotif.fireDate = [NSDate date];

现在,为了格式化您的日期时间,您可以参考这些链接

答案 1 :(得分:1)

那么,当您收到通知时,您可以在应用程序委托文件中处理本地通知。 例如这是每次收到本地通知时触发的委托方法。

- (void)application:(UIApplication *)app didReceiveLocalNotification:(UILocalNotification *)notif {
    //Handle the notificaton when the app is running
    NSLog(@"Recieved Notification %@",notif);


        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Hey Neha" message:@"Sanjay wants to be your friend " delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
        [alertView show];
        [alertView release];

        SystemSoundID bell;  
        AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"WhoopFlp" ofType:@"wav"]], &bell);  
        AudioServicesPlaySystemSound (bell);

        AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);

        i=0;
    }
}

所以我在这里做的只是在我的本地通知发生时显示警报并播放系统声音。 所以现在你想要的是导航到你获得本地通知时你所在的程序中的页面。所以,只需在这个委托方法中你需要分配你的视图控制器,并需要将视图控制器推到你想要的那个视图成为。 那样可以解决你的问题。 我有一个类似的问题我想要的是在后台和前端显示通知,所以在我的应用程序中编写2种不同的方法是不值得的。所以我在委托方法中这样处理它这也会在前端显示通知。 祝你好运。

答案 2 :(得分:0)

localnotification =[[UILocalNotification alloc]init];
[localnotification setFireDate:[NSDate dateWithTimeIntervalSinceNow:[lodatepicker countDownDuration]]];
[localnotification setAlertAction:@"Launch"];
[localnotification setHasAction: YES];
[localnotification setAlertBody:[lotextview text]];
// [localnotification setSoundName:musicString];
localnotification.timeZone = [NSTimeZone defaultTimeZone];
[localnotification setApplicationIconBadgeNumber:[[UIApplication sharedApplication] applicationIconBadgeNumber]+1];
[[UIApplication sharedApplication] scheduleLocalNotification:localnotification];