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