ios - 远程通知到达时哪个代表首先调用,而我的应用程序处于终止模式(不在后台)
问题描述
动机:-我想存储在应用程序未处于后台模式或被终止模式时收到通知时存储的通知的有效负载。
问题:- 应用程序在终止模式下收到通知时没有委托呼叫。请建议在这种情况下该怎么做。
解决方案
来自 Apple 文档(UNUserNotificaitonCenter
框架 iOS 10+)...
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
print("didReceive \(response.notification.request.content.userInfo)")
}
只有当应用程序在前台时,才会在委托上调用该方法。如果方法未实现或处理程序未及时调用,则不会显示通知。应用程序可以选择将通知呈现为声音、徽章、警报和/或在通知列表中。该决定应基于通知中的信息是否对用户可见。
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
print("willPresent: \(notification.request.content.userInfo)")
completionHandler([.alert, .badge, .sound])
}
当用户通过打开应用程序、关闭通知或选择 UNNotificationAction 来响应通知时,将在委托上调用该方法。必须在应用程序从 application:didFinishLaunchingWithOptions: 返回之前设置委托。
推荐阅读
- docker - Docker Machine:删除 STATE = Error 或 ERRORS 不是 None 或 DOCKER = Unknown 的机器
- android - Android Studio 在 onClick 时出现错误
- python - 每个值的坐标不是每次都添加,而是重置
- bash - 在 zsh 脚本中获取上一个命令的参数
- .net-core - 无法将 API 控制器添加到 .NET Core 3 API 项目
- uml - 如何指定一个类的唯一标识符
- windows - 批量匹配音频文件和视频文件(.bat)
- c# - TFS 取代一切
- ruby - 使用自定义开始时间按时间排序数据
- python - 更改 Python 使用的 TLS 版本