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

Posted

技术标签:

【中文标题】是否可以在事件 IOS 之后触发本地通知?【英文标题】:Is it possible to trigger a local notification after an event IOS? 【发布时间】:2014-05-30 23:55:53 【问题描述】:

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

谢谢。

【问题讨论】:

你是指本地通知还是推送通知?标题有点误导 我问的原因是当你的应用在后台时,本地通知会像推送通知一样出现。 【参考方案1】:

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

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

【讨论】:

抱歉,我没有意识到我在标题中留下了 push,我一直在进行 10 小时的编码狂欢,有点累了。这正是我一直在寻找的,非常感谢!【参考方案2】:

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]];
    

【讨论】:

以上是关于是否可以在事件 IOS 之后触发本地通知?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在 iOS 中安排 SILENT 本地通知?

iOS 4:是不是可以在电话通话期间显示本地通知?

当 iOS 10 应用程序在后台时,有啥方法可以触发本地通知?

在 iOS 中每天在不同时间实现多个本地通知的逻辑

iOS8中的本地通知触发代码可以吗?

如果在 iOS 设置中禁用通知访问时安排本地通知,则不会在 iOS 13 上触发本地通知