Как сделать подписку на Push в OneSignal через ссылку?

Делаю пуш уведомления с помощью OneSignal. Как я понял, у них по умолчанию для подписки используется плавающая кнопка, которая прикреплена к нижу страницы как на сервисах колбека.

Я хочу сделать для подписки обычную ссылку. В мануале есть пример:
<head>
<link rel="manifest" href="/manifest.json">
<script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" async></script>
</head>
<body>
    <a href="#" id="subscribe-link" style="display: none;">Subscribe to Notifications</a>
    <script>
        function subscribe() {
            OneSignal.push(["registerForPushNotifications"]);
            event.preventDefault();
        }

        var OneSignal = OneSignal || [];
        /* This example assumes you've already initialized OneSignal */
        OneSignal.push(function() {
            // If we're on an unsupported browser, do nothing
            if (!OneSignal.isPushNotificationsSupported()) {
                return;
            }
            OneSignal.isPushNotificationsEnabled(function(isEnabled) {
                if (isEnabled) {
                    // The user is subscribed to notifications
                    // Don't show anything
                } else {
                    document.getElementById("subscribe-link").addEventListener('click', subscribe);
                    document.getElementById("subscribe-link").style.display = '';
                }
            });
        });
    </script>
</body>

Но у меня работает не корректно. Что пользователь подписан, что не подписан ссылка не показывается. Если показать её принудительно, то по клику на неё всё равно ничего не происходит.

Подскажите, что я сделал не так? Как сделать подписку на пуши через клик по ссылке?
  • Вопрос задан
  • 1108 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы