- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在安排本地通知。它适用于 iOS 9.x,但自 iOS 10 以来
-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
当应用程序在 iOS 10 上运行时不会被调用。
我知道 iOS 引入了新的 UserNotifications
框架,但这不应该停止 iOS 9 API 的工作。
我该如何解决这个问题?
最佳答案
如您所知,iOS 10 引入了 UNUserNotifications
框架来处理本地和远程通知。使用此框架,您可以设置一个委托(delegate)来检测何时显示或点击通知。
[UNUserNotificationCenter currentNotificationCenter].delegate = yourDelegate;
...
// In your delegate ...
- (void)userNotificationCenter:(UNUserNotificationCenter *)center
willPresentNotification:(UNNotification *)notification
withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler {
// Notification arrived while the app was in foreground
completionHandler(UNNotificationPresentationOptionAlert);
// This argument will make the notification appear in foreground
}
- (void)userNotificationCenter:(UNUserNotificationCenter *)center
didReceiveNotificationResponse:(UNNotificationResponse *)response
withCompletionHandler:(void (^)())completionHandler {
// Notification was tapped.
completionHandler();
}
现在,如果您仍想使用旧的(已弃用的)application:didReceiveLocalNotification
和 application:didReceiveRemoteNotification:fetchCompletionHandler
,解决方案很简单:只需不要't 将任何委托(delegate) 设置为 UNUserNotificationCenter
。
请注意,静默远程通知(那些包含 content-available
键且没有 alert
、sound
或 badge
) 始终由 application:didReceiveRemoteNotification:fetchCompletionHandler
处理,即使您已经设置了委托(delegate)。
关于ios - 使用 UNUserNotificationCenter 后没有调用 didReceiveLocalNotification,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39300865/
按照文档的要求,如果它们在同一个线程上,则一个接一个地删除和添加具有匹配标识符的通知对我来说似乎工作正常。如果它们在不同的线程上,则新添加的通知将被上一行的 delete 调用删除。第一个案例保证有效
我正在尝试使用适用于 iOS 10 的 UserNotifications 框架。 如果我不传入触发器,通知似乎工作得很好。它们会立即出现在应用程序中。但我需要为触发器传递一个延迟。谁能看到我的代码中
我有一个用 Swift 编写的应用程序,它使用 UNUserNotificationCenter,当该应用程序位于前台时,它会显示通知。 我想做的是在通知已发送且应用程序位于前台后更新 UI 以下显示
我有一个 Xcode 项目,Xcode 8.1 (8B62),有两个目标,一个用于应用程序的付费版本,另一个用于免费版本。他们都管理远程推送通知。由于我使用新框架 UNUserNotification
我想在应用程序处于前台时显示推送通知的横幅。我实现了这个方法来显示通知: func userNotificationCenter(_ center: UNUserNotificationCenter,
运行下面的代码不会在屏幕右上角显示通知(作为横幅或警报)。通知显示在通知中心。 我确保我的系统上禁用了“请勿打扰”。我还尝试了系统偏好设置 -> 通知 -> 我的应用程序名称中的“横幅”和“警报”设置
我使用的是 MacOS Mojave,并且从使用现已弃用的 NSUserNotification 切换到 UNUserNotificationCenter。我的应用程序出现在系统偏好设置通知中,并选择
我刚刚对 iOs 10 和其他版本的通知进行了更改: if #available(iOS 10.0, *) { let center = UNUserNotificationCenter.cu
我现在如何调用本地通知?而不是在未来设定一个时间间隔?此代码将在未来 5 秒后显示通知。我希望现在就调用它。 let trigger = UNTimeIntervalNotificationTrigg
如果服务器向用户发送推送通知,但用户没有点击该通知,应用程序仍然可以确定有推送发送到手机并使用 UNUserNotificationCenter.getDeliveredNotifications()
有几篇文章解决了同样的问题,但(据我所见)它们都是 4 年前的,而且是在 Objective-C 中。我正在使用 Swift 4.2。 我正在制作一个倒计时应用程序。当应用程序在后台并且计时器到期时,
我正在使用 Apple 去年在 iOS 10 中宣布的一项功能。我的问题是通知中的图像有时是空的。 这是我的UNNotificationServiceExtension..我不确定我做错了什么。图像的
我正在使用 UNUserNotificationCenter.App 创建警报当应用程序处于后台或退出时效果很好但是,如果应用程序正在运行,则不会发出警报。 我听说应用程序运行时没有警报。是真的吗?
我在应用程序中使用本地通知时遇到问题。 我正在安排包含自定义内容和自定义操作类别的本地通知。它在 iOS 11 中进行调度和触发,但在 iOS 10 中没有。 根据文档,它应该也适用于 iOS 10。
当我发送推送通知时,应用程序在前台 willPresent 被调用。 didReceive 永远不会被调用。当应用程序在后台并收到推送通知时,会显示警报,但应用程序不会调用 didReceive 或
我正在尝试制作一个提醒应用,并且我所有的通知重复都设置为 true Example : var dateComponents = DateComponents() da
我正在安排本地通知。它适用于 iOS 9.x,但自 iOS 10 以来 -(void)application:(UIApplication *)application didReceiveLocalN
我的 AppDelagate 中有以下代码块: func userNotificationCenter(_ center: UNUserNotificationCenter,
我正在尝试检索仍显示在通知中心的所有已发送通知,但 UNUserNotificationCenter getDeliveredNotifications(completionHandler:) 不起作
我正在处理本地通知,但我遇到的问题是当应用程序终止时没有调用 didReceive Response 方法,所以当我点击通知操作时它只是启动应用程序而没有做任何其他事情。但是,当该应用程序仅在后台运行
我是一名优秀的程序员,十分优秀!