[GH-ISSUE #278] iOS: per-subscription mute #214

Open
opened 2026-05-07 00:21:39 +02:00 by BreizhHardware · 8 comments

Originally created by @binwiederhier on GitHub (May 29, 2022).
Original GitHub issue: https://github.com/binwiederhier/ntfy/issues/278

This ticket is about implementing the subscription mute and the min priority for iOS.

Originally created by @binwiederhier on GitHub (May 29, 2022). Original GitHub issue: https://github.com/binwiederhier/ntfy/issues/278 This ticket is about implementing the subscription mute and the min priority for iOS.
Author
Owner
<!-- gh-comment-id:1146207305 --> @binwiederhier commented on GitHub (Jun 3, 2022): https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_developer_usernotifications_filtering
Author
Owner

@binwiederhier commented on GitHub (Jun 4, 2022):

"Dear Developer,

Thank you for your interest in the Notification Service Extension filtering entitlement, and thank you for the detailed explanation of your use case.

We are unable to approve your request at this time. On iOS, we generally expect apps to make the determination of whether they need to alert the user on the server, not the client, in the interest of battery life.

See Choosing Background Strategies for Your App for alternative APIs that could help with your usecase, such as Background Push.

You may still use the Notification Service Extension without the filtering entitlement. As long as your Notification Service Extension runtime yields a visible notification at the end, it can remove previously posted notifications.

You can also consider using a lower interruptionLevel on iOS 15 and later.

Best Regards,

Andy (iOS Battery Life)"

<!-- gh-comment-id:1146586509 --> @binwiederhier commented on GitHub (Jun 4, 2022): "Dear Developer, Thank you for your interest in the Notification Service Extension filtering entitlement, and thank you for the detailed explanation of your use case. We are unable to approve your request at this time. On iOS, we generally expect apps to make the determination of whether they need to alert the user on the server, not the client, in the interest of battery life. See [Choosing Background Strategies for Your App](https://developer.apple.com/documentation/backgroundtasks/choosing_background_strategies_for_your_app?language=objc) for alternative APIs that could help with your usecase, such as Background Push. You may still use the Notification Service Extension without the filtering entitlement. As long as your Notification Service Extension runtime yields a visible notification at the end, it can [remove previously posted notifications](https://developer.apple.com/documentation/usernotifications/unusernotificationcenter/1649500-removedeliverednotificationswith?language=objc). You can also consider using a lower [interruptionLevel](https://developer.apple.com/documentation/usernotifications/unnotificationinterruptionlevel?changes=la&language=objc) on iOS 15 and later. Best Regards, Andy (iOS Battery Life)"
Author
Owner

@binwiederhier commented on GitHub (Jun 4, 2022):

Based on this response from Apple, i don't believe there is a way to implement the "mute topic" feature or the "min priority" feature without tracking the user server side, which I don't want to do.

<!-- gh-comment-id:1146586924 --> @binwiederhier commented on GitHub (Jun 4, 2022): Based on this response from Apple, i don't believe there is a way to implement the "mute topic" feature or the "min priority" feature without tracking the user server side, which I don't want to do.
Author
Owner

@binwiederhier commented on GitHub (Jun 4, 2022):

"Good morning Andy,

Thank you for the swift reply.

On iOS, we generally expect apps to make the determination of whether they need to alert the user on the server, not the client, in the interest of battery life.

That makes a lot of sense for traditional messaging apps. However, ntfy is a pubsub system that solely operates on topics (Firebase topics, and others). Server side, I do not track the Firebase token or APNs token at all, meaning I cannot distinguish users server side. A topic may have many subscribers (users), and sending exclusively to topics with multiple users means I cannot mute based on user, because different users may have different mute-preferences.

TLDR: ntfy uses topics with multiple subscribers (users), so communication is 1:n. Muting server side is hence not possible.

I should have included this in the original email. I ask you kindly and with the utmost respect to reconsider your evaluation.

Best regards,"

<!-- gh-comment-id:1146593885 --> @binwiederhier commented on GitHub (Jun 4, 2022): "Good morning Andy, Thank you for the swift reply. > On iOS, we generally expect apps to make the determination of whether they need to alert the user on the server, not the client, in the interest of battery life. That makes a lot of sense for traditional messaging apps. However, ntfy is a pubsub system that solely operates on topics (Firebase topics, and others). Server side, I do not track the Firebase token or APNs token at all, meaning I cannot distinguish users server side. A topic may have many subscribers (users), and sending exclusively to topics with multiple users means I cannot mute based on user, because different users may have different mute-preferences. TLDR: ntfy uses topics with multiple subscribers (users), so communication is 1:n. Muting server side is hence not possible. I should have included this in the original email. I ask you kindly and with the utmost respect to reconsider your evaluation. Best regards,"
Author
Owner

@MrOwen commented on GitHub (Sep 28, 2022):

Did Apple ever offer a response after your reply?

<!-- gh-comment-id:1261230679 --> @MrOwen commented on GitHub (Sep 28, 2022): Did Apple ever offer a response after your reply?
Author
Owner

@binwiederhier commented on GitHub (Oct 1, 2022):

No answer, sadly.

<!-- gh-comment-id:1264460359 --> @binwiederhier commented on GitHub (Oct 1, 2022): No answer, sadly.
Author
Owner

@ksurl commented on GitHub (Oct 21, 2022):

This is unfortunate. Mute is pretty nice on discord.

<!-- gh-comment-id:1286835112 --> @ksurl commented on GitHub (Oct 21, 2022): This is unfortunate. Mute is pretty nice on discord.
Author
Owner

@RezzZ commented on GitHub (Oct 21, 2025):

This is unfortunate. Mute is pretty nice on discord.

not only discord, also great feature on apps like whatsapp/telegram and other messaging apps.
a per topic mute for x hours/forever would be a nice feature for NTFY (at least for my use)

<!-- gh-comment-id:3425035737 --> @RezzZ commented on GitHub (Oct 21, 2025): > This is unfortunate. Mute is pretty nice on discord. not only discord, also great feature on apps like whatsapp/telegram and other messaging apps. a per topic mute for x hours/forever would be a nice feature for NTFY (at least for my use)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/ntfy#214
No description provided.