隐藏特定消息的推送通知

时间:2018-08-25 04:20:49

标签: apple-push-notifications swift4

是否可以隐藏特定推送通知消息的推送通知。我们有推送通知,用于位置更新。它将不断地从这些数据中获取数据,我们必须在地图中进行更新。我们必须隐藏特定推送消息的推送通知(这里是指位置更新推送消息)。

2 个答案:

答案 0 :(得分:0)

您必须对此类消息使用静默通知。

配置静默通知

  

要支持静默远程通知,请将远程通知值添加到Info.plist文件中的UIBackgroundModes数组。要了解有关此数组的更多信息,请参见UIBackgroundModes。

<key>UIBackgroundModes</key>
<array>
    <string>remote-notification</string>
</array>

发送静默通知

  

aps词典也可以包含content-available属性。值为1的content-available属性使远程通知充当静默通知。当收到静默通知时,iOS会在后台唤醒您的应用程序,以便您可以从服务器获取新数据或进行后台信息处理。不会通知用户有关无提示通知产生的新信息或已更改信息,但是他们可以在下次打开您的应用程序时了解有关信息。

     

对于静默通知,请确保aps词典中没有警报,声音或徽标有效载荷。如果您不遵循此指南,则配置错误的通知可能会受​​到限制,并且不会在后台传递给应用,并且会向用户显示而不是保持沉默。

答案 1 :(得分:0)

传递空的 completionHandler([]) 以隐藏远程通知:

func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent 
                            notification: UNNotification, 
                            withCompletionHandler completionHandler: 
                            @escaping (UNNotificationPresentationOptions) -> 
                            Void)
{
    let userInfo:[AnyHashable:Any] =  notification.request.content.userInfo
    print("\(userInfo)")

    completionHandler([])
}