是否有可能在事件发生后触发本地通知?



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

谢谢。

我不是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++;
}

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

上面Aaron的回答很好,但是不要忘记请求本地通知的许可。在我的例子中,我在AppDelegate

下请求许可
(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

这是iOS8和iOS9的代码

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

最新更新