根据苹果文档,我们可以通过检查应用程序状态变量是否处于非活动状态(链接)来识别用户对通知的点击。
iOS 注意:在 iOS 中,您可以通过检查应用程序状态来确定应用程序是否由于用户点击操作按钮而启动,或者通知是否已发送到已运行的应用程序。在委托的 application:didReceiveRemoteNotification: 或 application:didReceiveLocalNotification: 方法的实现中,获取 applicationState 属性的值并对其进行评估。如果值为 UIApplicationStateInactive,则用户点击了操作按钮;如果值为 UIApplicationStateActive,则应用程序在收到通知时位于最前面。
但是我可以看到一个用例,其中有一个系统警报(通过系统警报,我的意思是在由 iOS 控制的应用程序的前台显示一个警报视图)并且应用程序处于非活动状态(当“系统警报”在视图中,iOS 通过将应用程序的应用程序状态设置为 UIApplicationStateInactive 使后面的应用程序处于非活动状态),但用户仍然能够在屏幕上看到应用程序的内容。参考以下附件:
在这种状态下,如果应用收到通知,它的行为就像用户点击了通知一样。有解决此用例的解决方案吗?