didReceiveRemoteNotification 函数调用了两次



我正在使用Firebase云消息传递功能通过自定义JSON有效负载实现推送通知,并且它正在运行。

我现在面临的问题是当我触发通知时, didRecieve被调用,当用户点击通知警报时,它会再次被调用。

我正在导航到didRecieve的其他viewcontroller,所以在我的情况下,导航到两次到同一个 VC。

我该如何处理这个问题?

如果您正在实现 application(_:didReceiveRemoteNotification:fetchCompletionHandler:) ,这可能是预期的行为,如文档中所述:

注意

如果用户从系统显示的警报打开你的应用,则系统会 当应用即将进入 前台,以便您可以更新用户界面并显示与通知相关的信息。

您可以验证是否在后台:

if (application.applicationState == .background) {
      completionHandler(.noData)
      return
}

可以使用 willPresent 方法创建alert消息。

func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (_ options: UNNotificationPresentationOptions) -> Void) {}

您也可以选择禁用应用内通知。

如果您需要在应用程序内通知和触摸选项:

您可以验证活动控制器是否已是所需的控制器。

希望这有帮助。

相关内容

  • 没有找到相关文章

最新更新