我正在使用Firebase云消息传递通过自定义JSON有效负载实现推送通知,并且该通知正在运行。
我现在面临的问题是当我发出通知时,
didRecieve
被呼叫,并且当用户点击通知警报时,它会再次被呼叫。
我正在导航至viewcontroller
中的其他didRecieve
,
因此,以我为例,浏览两次到同一vc。
我该如何解决这个问题?
答案 0 :(得分:0)
如果您正在实现application(_:didReceiveRemoteNotification:fetchCompletionHandler:)
,则可能是预期的行为,如here in the docs所述:
注意
如果用户从系统显示的警报中打开您的应用,则系统 当您的应用即将进入时,可能会再次调用此方法 前台,以便您可以更新用户界面并显示与通知有关的信息。
答案 1 :(得分:0)
您可以验证是否在后台:
if (application.applicationState == .background) {
completionHandler(.noData)
return
}
您可以使用willPresent
方法来创建alert
消息。
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (_ options: UNNotificationPresentationOptions) -> Void) {}
您也可以选择在应用中禁用通知。
如果您需要在应用程序通知中并触摸选项:
您可以验证活动控制器是否已经是您需要的控制器。
希望获得帮助。