【发布时间】:2017-06-22 18:25:01
【问题描述】:
当应用关闭且用户点击通知时:
1) 使用 remoteNotification 对象调用 didFinishLaunchingWithOptions。我按预期在这里设置了rootViewController
2) userNotificationCenter(_, didReceive, withCompletionHandler) 也被调用。
问题是,我不想在第 2 步做任何事情,因为我已经在第 1 步处理了通知)。但是,如果应用程序位于前台或后台,我确实想在步骤 2) 中处理通知。我不知道如何区分这两种情况。
【问题讨论】:
-
尝试在 userNotificationCenter 函数中设置 rootViewController 而不是 didFinishLaunchingWithOptions 怎么样?这样它只会被调用一次,因为 userNotificationCenter 是一个委托函数,当用户点击通知时会调用它。
-
因为我确实需要在didFinishLaunchingWithOptions中设置一个rootViewController,否则应用会崩溃
-
嗯,您可以添加一个变量来设置用户是否进入后台状态或应用程序是否刚刚打开。因此,当用户进入后台时,让我们设置 wasInBackground = true,因此如果 wasInBackground 为 true,则处理通知,如果不是,则不处理。
-
只是为了确定,您是否确认他们都是在点击通知时被调用的,还是只是您认为会发生这种情况?
标签: ios swift push-notification usernotifications