[Aerogear-users] UPS push to IOS removes the badge

Kelvin Lunsford kelvin at qantel.com
Wed Jul 29 21:23:29 EDT 2015


If UPS is given a push command with no "badge" value the IOS badge icon is being removed when the notification is received.  Expected behavior is that the badge icon would be unchanged if no badge value is set.

When USP receives a push command with no "badge" value it is sending APNS a "badge" value of -1.   

The Apple push payload spec says the badge icon is removed if the "badge" value is 0, and the icon is unchanged if there is no "badge" value.  The spec does not say what happens if the "badge" value is less than zero.  

Tested devices are removing the badge icon when -1 is set.

Please change UPS so no "badge" value is sent to APNS when the UPS command has no "badge" value. 

For example you could change the sendPushMessage function of APNsPushNotificationSender.java to:

  PayloadBuilder builder = APNS.newPayload()
    // adding recognized key values
    .alertBody(message.getAlert()) 
    //.badge(message.getBadge()) // do not set badge here
    .sound(message.getSound()) 
    .alertTitle(apns.getTitle()) 
    .alertAction(apns.getAction()) 
    .urlArgs(apns.getUrlArgs())
    .category(apns.getActionCategory()) 
    .localizedTitleKey(apns.getLocalizedTitleKey()); 

  if (message.getBadge() >= 0)
    builder.badge(message.getBadge()); // only set badge if needed

- Kelvin



More information about the Aerogear-users mailing list