Notification.requestPermission () выдает ошибку в Mozilla - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь получить уведомление для Mozilla. Но он постоянно выдает эту ошибку.

Разрешение на уведомление может быть запрошено только из кратковременного пользовательского обработчика событий.

Вот мой код. Тот же код отлично работает на Chrome, EDGE и Opera.

Notification.requestPermission().then(function (status) {
    if (status === 'denied') {
        //
    } else if (status === 'granted') {
        //
    }
});

Я нашел несколько вопросов, связанных с этим, но ни один из них мне не помог.

1 Ответ

0 голосов
/ 28 апреля 2020

Это сообщение означает, что ваш код подписки должен вызываться внутри события, сгенерированного пользователем, например, щелчок.

Возможно, вы пытаетесь подписать пользователя при загрузке страницы, но это невозможно в некоторых браузерах, таких как Firefox и Safari, потому что это считается раздражением для пользователей.

Это одна из причин, по которой многие службы pu sh (такие как OneSignal, Pushpad и др. c.) Предлагают использовать двойной выбор: сначала вы отображаете запрос на подписку или кнопку, созданную с помощью HTML / * 1010. * а затем, после нажатия на кнопку, вы фактически запрашиваете разрешение (ваш код указан выше).

...