2
votes

if I try to send a push notification silent (no badge/sound/alert) and just content-available, as per specs for silent notifications, on iOS 11, the notification is ignored and not forwarded to the app.

This is the notification

{
    "aps" : {
        "content-available" : 1,
    }, 
    "type" : "0"
}

The device log has:

<Error>: Ignoring notification with no alert, sound or badge (it.my.app.dev): C146-3838

And more complete:

Dec 27 10:11:30 iPierX SpringBoard(UserNotificationsServer)[59] <Notice>: [it.my.app.dev] Received remote notification request C146-3838 [ hasAlertContent: 0, hasSound: 0 hasBadge: 0 hasContentAvailable: 1 hasMutableContent: 0 ]
Dec 27 10:11:30 iPierX SpringBoard(UserNotificationsServer)[59] <Notice>: [it.my.app.dev] Deliver push notification request C146-3838
Dec 27 10:11:30 iPierX SpringBoard(UserNotificationsServer)[59] <Notice>: [it.my.app.dev] Passing content-available push to Duet
Dec 27 10:11:30 iPierX SpringBoard(DuetActivityScheduler)[59] <Notice>: SUBMITTING: <private>
Dec 27 10:11:30 iPierX SpringBoard(UserNotificationsServer)[59] <Error>: Ignoring notification with no alert, sound or badge (it.my.app.dev): C146-3838
Dec 27 10:11:30 iPierX SpringBoard(UserNotificationsServer)[59] <Notice>: [it.my.app.dev] Not saving push notification C146-3838 to store [ error=Error Domain=UNErrorDomain Code=1401 "Notification has no user-facing content" UserInfo={NSLocalizedDescription=Notification has no user-facing content} ]
Dec 27 10:11:30 iPierX dasd(DuetActivitySchedulerDaemon)[1645] <Notice>: Submitted Activity: com.apple.pushLaunch.it.my.app.dev:EA2367 <private>
Dec 27 10:11:30 iPierX dasd(DuetActivitySchedulerDaemon)[1645] <Notice>: Daemon Canceling Activities: {(
    com.apple.pushLaunch.it.my.app.dev:EA2367
)}
Dec 27 10:11:30 iPierX dasd(DuetActivitySchedulerDaemon)[1645] <Notice>: CANCELED: com.apple.pushLaunch.it.my.app.dev:EA2367 <private>
2
Please try with at least one key(badge or sound or alert) in push data. In iOS 11 there should be at least one key in dictionary.Mehul Sojitra
Tried, but different error, same result, and please be aware that the doc is different on Silent Notifications (called Configuring a Background Update Notification) developer.apple.com/library/content/documentation/…zontar

2 Answers

1
votes

This works also and does not play a sound when it arrives:

{
    aps = {
        "content-available" : 1,
        sound : ""
    };
}
1
votes

Ok.. after a while and chatting with some Apple Engineers and here, I had it working. The key was setting the notification as being High Priority as delivery priority, as well as content-available = 1.

Then of course there are the usual rate limitations for silent push notifications, but overall it works as expected.