Pushberichten verzenden naar subgroepen van je app-gebruikers

Bijgewerkt op 17. april 2024 door Jan Bunk


Voor de functies die op deze pagina worden beschreven is een abonnement met pushmeldingen vereist.

Het basisconcept over hoe je pushmeldingen naar een groep gebruikers van je app kunt sturen is als volgt:

  1. Je gebruiker John opent je app (voor dit voorbeeld nemen we aan dat het een shopping app is).
  2. John voert een actie uit waardoor hij tot je doelgroep gaat behoren, bijvoorbeeld door op een knop te drukken om zich te abonneren op meldingen over kortingen op keukengerei. De actie kan ook gewoon het doorbladeren van de keukengerei sectie van je app zijn, wat kan betekenen dat John geïnteresseerd is in producten voor zijn keuken.
  3. Je website roept de javascript functie "setNotificationTopicSubscriptionStatus" aan met de naam van het onderwerp waarop je John wilt abonneren, bijvoorbeeld "keuken".
  4. Later kun je een melding sturen naar John en alle andere gebruikers die op dit onderwerp zijn geabonneerd. Als je bijvoorbeeld een kortingscode op keukenartikelen hebt, kun je een bericht sturen naar iedereen die op het "keuken" onderwerp is ingeschreven om ze van de korting op de hoogte te stellen.

Beschikbare Javascript Functies

Je zou eens kunnen kijken naar de executeWhenAppReady() functie van ons app-helper script. Het zorgt ervoor dat je website niet probeert te communiceren met de app voordat deze klaar is of wanneer je website wordt geladen met een gewone browser (ReferenceError, functie is niet gedefinieerd).

Wanneer je een app toepassing wilt abonneren op een push notificatie onderwerp, roep dan eenvoudig de setNotificationTopicSubscriptionStatus functie op met de nieuwe abonnementsstatus (waar = geabonneerd, vals = uitgeschreven) en je gewenste onderwerpnaam.


<script>
    try {
        await setNotificationTopicSubscriptionStatus(true, "mytopic");
    }
    catch (e) {
        // Can occur if:
        // - you passed an invalid topic name.
        // - you didn't pass all necessary parameters to setNotificationTopicSubscriptionStatus().
        // - the app couldn't subscribe to the topic, for example because of connection issues. Should be very unlikely.
        // - the app couldn't connect to the native code. Should be very unlikely.
        // - push notifications are not included in your current plan
        console.log(e);
    }
</script>
    

Dingen om rekening mee te houden:

  • Het onderwerp moet overeenkomen met de volgende regex: [a-zA-Z0-9-_.~%]{1,850}
  • Je zou gebruikers ongeveer eens per maand opnieuw moeten abonneren op hun gewenste onderwerpen. Dit zorgt ervoor dat de onderwerpabonnementen blijven werken, zelfs na langdurige inactiviteit.
  • Hoewel onwaarschijnlijk, kan het abonneren mislukken, dus zorg ervoor dat je mogelijke fouten opvangt.

Je zou later ook een lijst kunnen willen krijgen van onderwerpen waarop de app toepassing is geabonneerd. De terugkeerwaarde is een lijst van strings.


<script>
    try {
        var topics = (await getSubscribedNotificationTopics())["topics"];
    }
    catch (e) {
        // Can occur if:
        // - the app couldn't connect to the native code. Should be very unlikely.
        // - push notifications are not included in your current plan
        console.log(e);
    }
</script>
    

Je kunt ook eens kijken naar een meer volledig code voorbeeld. Dit is de code voor een knop die de gebruiker aan- of afmeldt voor de categorie van de huidige pagina op een WordPress website.

Schermafbeeldingen

In de instellingen van de app is er ook een optie voor je gebruikers om zich af te melden voor meldingen.

Een schermafbeelding van het instellingenmenu van de app.
Een schermafbeelding van het instellingenmenu van de app.
Een screenshot van het dialoogvenster waarmee je je kunt afmelden voor pushmeldingen-onderwerpen.
Een screenshot van het dialoogvenster waarmee je je kunt afmelden voor pushmeldingen-onderwerpen.

API-eindpuntverwijzing

Nu je gebruikers op je onderwerp hebt geabonneerd, kun je beginnen met het verzenden van meldingen naar je onderwerp via onze API.

Haal je app-specifieke API sleutel uit je app dashboard.

Stuur je API sleutel als een query in de URL en de ''request body'' in het JSON formaat.