We are currently integrating the Urban Airship Message Center to send Rich Messages. We would like to use the app icon badge number to show the number of messages the user hasn't yet seen, which is different the number of messages that are currently unread. To do this we were hoping to have each push message increment the badge count, and the app would reset that count to zero each time the user navigates to the message center inbox. According to this documentation
and our own experience, Message Center always sets the badge count to the current number of unread messages, even after resetting the count to zero.
What we would like, is to reset the badge count on the server with something similar to the existing resetBadge() available through UAPush. To be clear, we're not looking to mark all messages as read, since we want to highlight those for the user in the Inbox. We just want to be able to set the badge number on the server to 0 for Message Center.
Currently, we can call resetBadge() and updateRegistration() afterward, with autobadging enabled. We can view the correct debug output and view the request being sent up to the server with a proxy, setting badge:0, but the next time that a push is sent the badge number is incremented from the previous number.
Is there any method that you can recommend that would help us accomplish our goal of separating the badge count from the read/unread status of the messages?