我目前正在保存一个标志,以禁用我的用户首选项中的通知。我在didReceieveRemoteNotifications
中使用该标记来显示或跳过进来的通知。但是,当我的应用程序在后台时,它仍然会显示,我相信我已经正确设置了所有方法并且没有被点击。有没有办法在应用程序处于后台时抓住此通知并将其从显示中跳过?
NSNumber* enabled = [Helper getBooleanPreference:[Config subscriptionsEnabled]];
if(enabled == nil || [enabled integerValue] == 1) {
completionHandler(UIBackgroundFetchResultNewData);
}
答案 0 :(得分:5)
发送静默通知需要特殊配置通知的有效负载。如果未正确配置有效负载,则通知可能会显示给用户,而不是在后台传递给您的应用。在您的有效负载中,请确保满足以下条件:
有效负载的aps字典必须包含内容可用密钥 值为1。
有效负载的aps字典不得包含 警报,声音或徽章钥匙。
因此,您的推送应包含值为1的内容可用,不包含警报,声音或徽章键。
在这种情况下,如果要通知用户,则必须显示UILocalNotification
。