应用程序在后台时跳过或禁用iOS通知

时间:2017-01-17 18:52:00

标签: ios apple-push-notifications

我目前正在保存一个标志,以禁用我的用户首选项中的通知。我在didReceieveRemoteNotifications中使用该标记来显示或跳过进来的通知。但是,当我的应用程序在后台时,它仍然会显示,我相信我已经正确设置了所有方法并且没有被点击。有没有办法在应用程序处于后台时抓住此通知并将其从显示中跳过?

  NSNumber* enabled = [Helper getBooleanPreference:[Config subscriptionsEnabled]];

        if(enabled == nil || [enabled integerValue] == 1) {
            completionHandler(UIBackgroundFetchResultNewData);
        }

1 个答案:

答案 0 :(得分:5)

来自Apple documentation

  

发送静默通知需要特殊配置通知的有效负载。如果未正确配置有效负载,则通知可能会显示给用户,而不是在后台传递给您的应用。在您的有效负载中,请确保满足以下条件:

     

有效负载的aps字典必须包含内容可用密钥   值为1。

     

有效负载的aps字典不得包含   警报,声音或徽章钥匙。

因此,您的推送应包含值为1的内容可用不包含警报,声音或徽章键。

在这种情况下,如果要通知用户,则必须显示UILocalNotification