Postat den 16. september 2022 av Jan Bunk
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.
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:
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>
Här finns en lista över relaterad dokumentation för utvecklare om push-notiser:
Och här är några fler (icke-utvecklar) artiklar relaterade till push-notiser: