Så här gör du: Visa uppmaningen om behörighet för push-notifiering

Postat den 16. september 2022 av Jan Bunk


Funktionerna som beskrivs på denna sida kräver en plan som inkluderar push-notiser.

Under en längre tid har iOS-användare behövt be om tillstånd innan de fick skicka push-notiser. Sedan Android 13 gäller detta även för Android-användare.

Som standard ber appar som skapas med webtoapp.design automatiskt om tillstånd när appen startas för tredje gången. Om du vill anpassa detta beteende för din app kan du använda följande JavaScript-funktioner.

Använda JavaScript-funktioner

Du kanske vill kolla in executeWhenAppReady()-funktionen i vårt hjälparskript för appen. Det säkerställer att din webbplats inte försöker interagera med appen innan den är redo eller när din webbplats laddas med en vanlig webbläsare (ReferenceError, funktionen är inte definierad).

notificationPermissionsGranted

Använd den här funktionen när du vill kontrollera om användaren har beviljat behörighet för push-notiser.


<script>
    try {
        // returns true or false
        let granted = (await notificationPermissionsGranted())["granted"];
    }
    catch (e) {
        // Can occur if:
        // - the app couldn't connect to the native code. Should be very unlikely.
        // - the app couldn't get the push notification permission status. Should be very unlikely.
        // - push notifications are not included in your current plan
        console.log(e);
    }
</script>
    

requestNotificationPermissions

Använd den här funktionen när du vill visa en uppmaning om behörighet för push-notiser.

Funktionen tar emot en boolesk parameter som avgör ifall inställningarna ska öppnas om den vanliga tillståndsprövningen tidigare har avvisats. Här är skärmdumpar av de inställningssidor som öppnas på Android och iOS:

Android-appens informationsskärm där meddelanden kan aktiveras manuellt.
Android-appens informationsskärm där meddelanden kan aktiveras manuellt.
En skärmdump av inställningarna för meddelanden i iOS.
En skärmdump av inställningarna för meddelanden i iOS.

Eftersom det här beteendet kan vara förvirrande för användarna bör du bara ställa in parametern till true om användaren uttryckligen har angett att han eller hon vill aktivera push-notiser. Om parametern sätts till false kan funktionen vara en nollvision om tidigare behörighetsförfrågningar inte beviljades.


<script>
    try {
        let openSettingsIfNecessary = false;

        // doesn't return anything
        await requestNotificationPermissions(openSettingsIfNecessary);
    }
    catch (e) {
        // Can occur if:
        // - the app couldn't connect to the native code. Should be very unlikely.
        // - the app couldn't ask for push notification permissions. Should be very unlikely.
        // - push notifications are not included in your current plan
        console.log(e);
    }
</script>