当用户点击远程通知时,会在app委托中触发以下回调:
-application:didReceiveRemoteNotification:fetchCompletionHandler:
在这种情况下,应用程序启动并且应用程序状态为 UIApplicationStateActive
,我将其解释为用户对远程通知执行操作 .
the problem: 当远程通知到达并且app位于前台 with inactive state 时,也可以调用此方法 .
example :当通知中心视图打开时(从屏幕上边缘向下滑动)或UIAlert打开 . 在这两种情况下,应用程序状态都是 UIApplicationStateActive
,并且无法判断它是用户操作的通知还是系统推送 .
Q :如何确定 didReceiveRemoteNotification
回调是否响应用户点击远程通知与远程通知的到达?
2 回答
此外,如果应用程序未运行且用户点击了通知,则会调用didFinishLaunchingWithOptions . 我没有尝试过,但我可以假设您可以从选项中获取通知详细信息 .
要区分didReceiveRemoteNotification中的两个调用,您可以从下面添加此代码 .