事件IOS后是否可以触发本地通知?

时间:2014-05-30 23:55:54

标签: ios objective-c ios7 uilocalnotification

我正在开发一个应用程序,它可以完成一些计算量很大的任务,需要很长时间。我想在任务完成时通过本地推送通知通知用户。这可能吗?我能够在网上找到的唯一信息是在特定时间/日期触发通知,或者如果应用已进入后台或终止,所有这些都在appDelegate中完成。有没有办法在我自己的课程中这样做?

感谢。

2 个答案:

答案 0 :(得分:3)

我并非100%确定您正在寻找UILocalNotification示例,因为帖子标题提到了推送通知。无论哪种方式,您都可以安排来自任何类别的本地通知

- (void)throwLocalNotificationWithMessage:(NSString*)message {    
    UILocalNotification *localNotification = [[UILocalNotification alloc] init];
    NSDate *now = [NSDate date];
    localNotification.fireDate = now;
    localNotification.alertBody = message;
    localNotification.soundName = UILocalNotificationDefaultSoundName;
    [[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
    [UIApplication sharedApplication].applicationIconBadgeNumber++;
}

此外,根据我的需要,当区域监控检测到边界进入/退出更改时,我会抛出这些本地通知。此代码在我的应用程序处于后台时运行,在这种情况下,它们看起来像推送通知。

答案 1 :(得分:1)

Aaron的上述答案工作正常,但不要忘记要求获得Local Localification的许可。在我的情况下,我在AppDelegate下获得许可 -

(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

这是iOS8和iOS9的代码

if ([application respondsToSelector:@selector(registerUserNotificationSettings:)]) {
        [application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil]];
    }
相关问题