我有一个应用程序,我正在尝试接收和处理SILENT推送通知.
我正在注册APNs如下:
UNUserNotificationCenter.currentNotificationCenter().delegate = self UNUserNotificationCenter.currentNotificationCenter().requestAuthorizationWithOptions([.Badge,.Sound,.Alert]) {(granted,error) in if granted { application.registerForRemoteNotifications() } }
实现:
func userNotificationCenter(center: UNUserNotificationCenter,didReceiveNotificationResponse response: UNNotificationResponse,withCompletionHandler completionHandler: () -> Void) { // Handle notification } func userNotificationCenter(center: UNUserNotificationCenter,willPresentNotification notification: UNNotification,withCompletionHandler completionHandler: (UNNotificationPresentationOptions) -> Void) { // Handle notification }
该应用程序具有UIBackgroundModes提取和远程通知
APN内容如下所示:
{ "aps":{ "content-available":1,"badge":0 },"action":"shareDelete","shareId":633 }
当应用程序处于前台时,当收到通知时,userNotificationCenter(center:withCompletionHandler:willPresentNotification)将被触发,但是当应用程序背景时,没有任何反应.
我可以看到通过更改徽章号码收到APN,但在应用程序中没有触发任何内容.
我失踪了什么
(也在Apple开发论坛上询问)
解决方法
方法
func userNotificationCenter(center: UNUserNotificationCenter,withCompletionHandler completionHandler: () -> Void) { // Handle notification }
当用户点击通知或在Apple Watch上查看时呼叫:
Called to let your app know which action was selected by the user for a given notification.
你需要实现旧的方法
func application(_ application: UIApplication,didReceiveRemoteNotification userInfo: [AnyHashable : Any],fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) { }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。