Pushmeldingen zijn berichten die door de server naar een mobiel apparaat worden gestuurd, zelfs als de app is gesloten. Volgens Google Firebase, 2024 worden pushmeldingen verwerkt via gespecialiseerde diensten — FCM op Android en APNS op iOS, die real-time levering aan miljoenen apparaten tegelijk ondersteunen. Ze zijn een integraal onderdeel geworden van de gebruikerservaring in moderne mobiele apps.
Belangrijkste punten
Pushmeldingen zijn korte berichten die de app-server naar het apparaat van de gebruiker stuurt zonder expliciet verzoek. Ze worden weergegeven als banners, pictogrambadges of geluidssignalen, trekken de aandacht van de gebruiker naar de app en informeren over belangrijke gebeurtenissen.
Een pushmelding bestaat uit een titel, berichttekst en optionele gegevens (payload). In tegenstelling tot sms zijn pushmeldingen gratis voor de gebruiker en worden ze geleverd via clouddienstinfrastructuur — FCM voor Android en APNS voor iOS. De belangrijkste doelen van pushmeldingen: verhoging van betrokkenheid, informeren over gebeurtenissen en de gebruiker terugbrengen naar de app.
Gebruiksstatistieken tonen aan dat correct geconfigureerde pushmeldingen de app-retentie met 30-60% verhogen. Overmatige frequentie leidt echter tot afmeldingen — meer dan 60% van de gebruikers schakelt meldingen uit als ze meer dan drie keer per dag worden verzonden.
Het pushsysteem omvat drie componenten: de app-server, het platform (FCM/APNS) en de client-app op het apparaat. De server stuurt een verzoek naar het platform, dat de melding via een permanente verbinding met het besturingssysteem aan het doelapparaat levert.
Het leveringsmechanisme van pushmeldingen is gebaseerd op een permanente verbinding tussen het apparaat en het platform. Het besturingssysteem onderhoudt een versleuteld communicatiekanaal waar alle pushberichten doorheen gaan.
Bij de eerste start vraagt de app toestemming voor het verzenden van meldingen en ontvangt een uniek apparaattoken van FCM of APNS. Dit token is een tekenreeks van maximaal 4 KB die de app-instantie uniek identificeert. Het token verandert bij herinstallatie van de app of herstel van het apparaat uit een back-up.
class FirebaseMessagingService :
FirebaseMessagingService() {
override fun onNewToken(token: String) {
sendTokenToServer(token)
}
override fun onMessageReceived(
message: RemoteMessage
) {
showNotification(message.notification)
}
}
De app-server stuurt een HTTP-verzoek naar de FCM API of APNS API, met vermelding van het doeltoken, titel, tekst en extra gegevens. Het platform reageert met de leveringsstatus: success, invalid token (app verwijderd van apparaat) of rate-limited (verzendfrequentie overschreden).
fetch("https://fcm.googleapis.com/fcm/send", {
method: "POST",
headers: {
"Authorization": "key=AIzaSy...",
"Content-Type": "application/json"
},
body: JSON.stringify({
to: "device_token_here",
notification: {
title: "token naar uw eigen server sturen",
body: "U heeft een nieuwe melding!"
}
})
})
De keuze tussen FCM en APNS hangt af van het doelplatform. FCM ondersteunt Android en iOS, APNS — alleen het Apple-ecosysteem. Laten we de belangrijkste verschillen bekijken die belangrijk zijn voor de ontwikkeling van cross-platform mobiele apps.
FCM is de Google-dienst die werkt op basis van Google Play Services. Het ondersteunt twee leveringsschema's: meldingen met automatische weergave (display notifications) en datameldingen die de app zelf verwerkt. FCM is gratis en heeft geen beperkingen op het aantal verzonden berichten.
APNS is de Apple-dienst met ondersteuning voor multimedia-bijlagen (afbeeldingen, video, audio) tot 10 MB. Voor verzending via APNS is een TLS-certificaat of authenticatiesleutel vereist. APNS beperkt de verzendfrequentie naar één apparaat — niet meer dan 150 meldingen per minuut, waarna rate limiting wordt geactiveerd.
| Kenmerk | FCM | APNS |
|---|---|---|
| Platforms | Android, iOS, Web | iOS, macOS, watchOS |
| Vereisten | Google Play Services | Apple Developer Program |
| Media | tot 4 KB (data) | tot 10 MB (bijlagen) |
| Prioriteit | normal/high | immediate/power-saving |
| Kosten | gratis | gratis (account vereist) |
Pushmeldingen worden geclassificeerd op weergavewijze en doel. Inzicht in de typen helpt bij het kiezen van de juiste strategie voor elk interactiescenario met de gebruiker.
Het meest voorkomende type — weergegeven melding met titel en tekst. Het besturingssysteem toont deze automatisch in het meldingenpaneel, op het vergrendelscherm en als banner. De ontwikkelaar kan geluid, trilling, pictogrambadge en actieknoppen instellen voor directe acties (antwoorden, openen, afwijzen).
Datameldingen bevatten alleen payload zonder visuele weergave. De app verwerkt ze op de achtergrond: synchroniseert gegevens, werkt de cache bij of start downloads. Op Android worden datameldingen gegarandeerd geleverd, op iOS — alleen wanneer de app actief is of via background fetch.
Moderne mobiele besturingssystemen ondersteunen uitgebreide en mediameldingen met afbeeldingen, GIF, video en audio. Op iOS wordt dit geïmplementeerd via UNNotificationAttachment, op Android — via BigPictureStyle en InboxStyle voor aanpassing van de melding in het systeempaneel.
Stille meldingen worden niet aan de gebruiker getoond en worden gebruikt voor achtergrondsynchronisatie. Op iOS hebben ze hoge prioriteit voor taken zoals het bijwerken van gegevens voordat de app wordt geopend. Android behandelt ze als datameldingen met minimale prioriteit.
Het instellen van pushmeldingen vereist acties op infrastructuurniveau, serverzijde en clientcode. Laten we het typische proces voor een cross-platform mobiel project bekijken.
Voor Android moet u een project maken in de Firebase Console, google-services.json aan het project toevoegen en FirebaseMessagingService configureren. Het apparaattoken wordt verkregen via FirebaseInstanceId of FirebaseMessaging.getInstance().token en vervolgens via de API naar de server gestuurd bij de eerste start of bij wijziging.
Voor iOS is een abonnement op Apple Developer Program vereist, het aanmaken van een pushcertificaat of APNS-sleutel in de Developer Portal en het inschakelen van Capability Push Notifications in Xcode. Registratie voor meldingen gebeurt via UIApplication.shared.registerForRemoteNotifications met ontvangst van deviceToken in AppDelegate.
import UIKit
import UserNotifications
@main
class AppDelegate: UIResponder,
UIApplicationDelegate {
func application(
_ application: UIApplication,
didRegisterForRemoteNotificationsWithDeviceToken
deviceToken: Data
) {
let token = deviceToken
.map { String.format("%02x", $0) }
.joined()
// token naar je eigen server sturen
}
}
Aan de serverzijde worden pushmeldingen verzonden via REST API of Admin SDK. Voor FCM wordt Firebase Admin SDK gebruikt (beschikbaar voor Node.js, Java, Python, Go), voor APNS — pusher-bibliotheken (pushy voor Java, apn2 voor Node.js). Het wordt aanbevolen tokens in de database op te slaan met een tijdstempel van de laatste update.
De veiligheid van pushmeldingen is van cruciaal belang omdat er vertrouwelijke gegevens via kunnen worden verzonden. Beide platforms bieden basale beschermingsmechanismen, maar de ontwikkelaar moet ze correct gebruiken.
De payload van een pushmelding kan persoonsgegevens van gebruikers bevatten: namen, transactiebedragen, links naar berichten. Zelfs als het communicatiekanaal tussen FCM/APNS en het apparaat is versleuteld, kunnen gegevens worden onderschept op app-niveau bij het onderscheppen van de melding door software van derden. Het wordt aanbevolen gevoelige payload op de server te versleutelen met AES-256 en te ontsleutelen op het apparaat met een sleutel die is opgeslagen in Keychain (iOS) of EncryptedSharedPreferences (Android).
Het apparaattoken is een sessie-ID die gecompromitteerd kan worden bij een hack van het apparaat of onderschepping van verkeer. De app-server moet tokens controleren vóór verzending: vergelijken met de database, inactieve tokens volgen en verwijderen bij herhaalde InvalidToken-fouten. FCM en APNS retourneren de status InvalidRegistration voor ongeldige tokens — negeer dit niet.
Zonder frequentiecontrole kunnen pushmeldingen een spamhulpmiddel worden dat gebruikers irriteert en de retentie verlaagt. Stel limieten in op de server: niet meer dan 5 meldingen per uur voor één gebruiker en niet meer dan 3 identieke berichten. Voor transactiemeldingen (orderbevestiging, wachtwoordwijziging) kunnen limieten hoger zijn — tot 10 per uur, omdat ze cruciale informatie bevatten. Gebruik rate limiting op API-niveau zodat een aanvaller geen massaverzending via uw server kan triggeren.
Veelgestelde vragen
Ja, directe verbinding met APNS wordt niet ondersteund op Android — voor apparaten zonder Google Play Services worden alternatieven zoals Huawei Mobile Services (HMS) en eigen WebSocket-verbindingen gebruikt. FCM blijft echter de standaard voor de meeste apps vanwege de gratis beschikbaarheid en betrouwbaarheid.
FCM en APNS bewaren de laatste melding op hun servers en leveren deze wanneer de verbinding wordt hersteld. Op elk apparaat wordt alleen de laatste melding van elke app bewaard, dus bij langdurige netwerkafwezigheid gaan tussenliggende berichten verloren.
De meest voorkomende oorzaken zijn verlopen pushcertificaat APNS (1 jaar geldig), ongeldig apparaattoken, uitgeschakelde meldingen in instellingen of ingeschakelde energiebesparingsmodus. Controleer het certificaat in de Apple Developer Console en zorg ervoor dat de app toestemming vraagt via UNUserNotificationCenter.
Op Android gebruikt u PendingIntent in NotificationCompat.Builder met het volgen van openen via Intent. Op iOS — de methode UNUserNotificationCenterDelegate.userNotificationCenter(_:didReceive:withCompletionHandler:). FCM biedt rapporten over levering en openingen voor elke verzonden melding.
Nauwelijks — pushmeldingen houden geen permanente verbinding in stand; het besturingssysteem gebruikt één systeemkanaal voor alle apps, wat het totale energieverbruik minimaliseert. Frequente verzending (elke 5 minuten) verbruikt meer energie voor het ontwaken van het apparaat en het verlaten van de slaapstand. Stille meldingen op iOS verbruiken meer energie vanwege activering van de app op de achtergrond voor verwerking van ontvangen gegevens.
Samenvatting
We ontwikkelen een mobiele applicatie turnkey
IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.
Lees ook