我的应用程序使用Apple推送通知服务。当我的应用程序不在前台,并且如果我收到推送通知,通知将显示在通知标题中。当我们点击该通知时,应用程序将恢复并执行application:didReceiveRemoteNotification:
方法的一些代码行。如果用户没有在横幅中看到此通知,并且通过其图标直接启动应用程序,则不会调用application:didReceiveRemoteNotification:
方法。那么,我该如何执行这些代码行呢?无论App的状态如何,我都需要在App收到通知时立即执行这些代码行。怎么可能?在后台执行响应推送通知 - ios
0
A
回答
2
对此的简短回答是,您至少不能使用推送通知服务。如果用户没有通过点击通知来打开应用程序,您将看不到接收到的通知(如果有)。
有几件事你可以尝试。
如果你的推送通知还增加应用程序图标徽章数量,你可以访问,使用
[UIApplication sharedApplication].applicationIconBadgeNumber
。如果这个数字不是0,它就会告诉你接收到了多少个推送通知(但是如果你有不同的推送通知,则不会收到)。记得在适当的时候清除这个数字。如果您使用的是后端服务,您还可以跟踪推送通知已发送到哪一端,并在您的应用程序变为活动状态时请求该信息。
这里的正确答案,虽然可能是返工你是如何架构的应用程序,所以这不是必须的,而不是只刷新需要的任何数据被刷新,当你的应用程序变得活跃,无论一个推送通知收到与否。
1
在UIApplicationDelegate
协议中有application:didFinishLaunchingWithOptions:
。
如果您的应用程序是由用户点击的提示中的右键点击推送通知,绑定到方法调用的字典将包含有关该通知的信息;
如果你的应用程序已经在运行,那么application:didReceiveRemoteNotification:
(也在委托协议中)将被调用。
0
直到除非您单击通知,否则应用程序都不会知道收到通知。因此,为该代码块创建一个单独的方法,并从 应用程序中调用它:didReceiveRemoteNotification:
如果您使用徽章编号。将徽章号码保存在NSUserDefaults中,并从应用程序图标启动应用程序。比较徽章号码与前一次添加要从didFinishLaunchingWithOptions执行的区块:
相关问题
- 1. 在后台iOS推送通知
- 2. iOS后台任务/推送通知
- 3. 当接收到推送通知时,在后台执行代码
- 4. 执行iOS推送通知的问题
- 5. IOS应用程序在后台不显示推送通知。 Swift
- 6. Firebase推送通知在后台振动
- 7. 推送通知执行
- 8. 在后台处理推送通知
- 9. 执行当收到无声推送通知和应用程式在后台运行的几行代码,IOS
- 10. 我在IOS上没有在后台接收fcm推送通知
- 11. 在推送通知后打开应用时执行操作?
- 12. 推送通知IOS
- 13. 推送通知IOS
- 14. iOS推送通知 -
- 15. iOs推送通知
- 16. 推送通知不在后台接收iOS
- 17. Gcm ios推送通知在后台失败
- 18. 当应用程序在后台ngCordova/Ionic推送通知
- 19. 在ios中推送通知
- 20. 当应用程序在后台时不显示推送通知
- 21. 推送通知的后台处理
- 22. 推送通知 - 后台进程 - iPhone
- 23. 后台中的Apple推送通知
- 24. didRegisterForRemoteNotificationsWithDeviceToken不执行 - 推送通知
- 25. 在接收推送通知时在后台运行javascript函数?
- 26. iOS没有收到使用apn nodejs的后台推送通知
- 27. 使用静默推送通知将iOS应用保持在“后台”状态
- 28. ASP.NET推送通知使用响应
- 29. WP7推送通知404响应
- 30. 使用Parse响应推送通知
这在技术上是正确的,但不回答他所问的问题。 – Dima