ios - 如何知道应用程序在后台时是否触发了本地通知?

标签 ios background uilocalnotification

我已经启用了位置更新的后台模式。我创建了一个预定的本地通知,并且我希望能够在它被触发并且应用程序在后台运行时停止定位服务。

didReceiveLocalNotification 方法似乎只在应用程序处于前台时调用,或者它在后台并且用户点击它时,有什么方法可以注意到它在应用程序时被触发在后台,但用户没有点击它?

最佳答案

希望对你有帮助

当系统发送本地通知时,可能会发生多种情况,具体取决于应用状态和通知类型。如果应用程序不在最前面且不可见,系统会显示警告消息、标记应用程序并播放声音——无论通知中指定什么。如果通知是警报并且用户点击操作按钮(或者,如果设备已锁定,则拖动打开操作 slider ),应用程序将被唤醒或启动。 (如果用户点击您使用 additionalActions 属性指定的自定义操作之一,应用程序将被唤醒或启动到后台。)在其 application:didFinishLaunchingWithOptions: 方法中,应用程序委托(delegate)可以从启动选项字典中获取 UILocalNotification 对象使用 UIApplicationLaunchOptionsLocalNotificationKey 键。委托(delegate)可以检查通知的属性,如果通知在其 userInfo 字典中包含自定义数据,它可以访问该数据并相应地处理它。另一方面,如果本地通知只标记应用程序图标,而用户作为响应启动应用程序,则会调用 application:didFinishLaunchingWithOptions: 方法,但选项字典中不包含 UILocalNotification 对象。当用户选择自定义操作时,将调用应用委托(delegate)的 application:handleActionWithIdentifier:forLocalNotification:completionHandler: 方法来处理该操作。

这来自 Apple 文档。

关于ios - 如何知道应用程序在后台时是否触发了本地通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33673610/

相关文章:

ios - 我如何获得 CPU、GPU、使用的磁盘、Apple 设备中的免费信息

ios - 二元运算符 '==' 不能应用于两个 `CGAffineTransform` 操作数

ios - 必须在 UIWebview 的 iframe 中使用 Google Maps Embed API

ios - 在 swift 中使用组件日期时获取递增的日期?

css - div 背景颜色,悬停时更改

ios - 如何观察系统警报消失

javascript - 使用 pdf.js 显示具有透明背景的 pdf

html - 拉伸(stretch)背景图像css?

ios - 单元测试 UILocalNotification

ios - 从通知中心点击时 UILocalNotification 不会触发 didReceiveLocalNotification