Web-Push-скрипт, работающий в Firefox, но не в Chrome

Правильно, вы не можете видеть это, потому что s - это тип SuperClass, который не имеет этого метода - это, очевидно, нарушит принцип Полиморфизм .

Поэтому вам нужно либо изменить код, как ((ChildClass) s).childClassMethod();, либо сделать s как ChildClass.

2
задан Envayo 13 July 2018 в 08:54
поделиться

1 ответ

        if(subscription){
const key = subscription.getKey('p256dh');
            const token = subscription.getKey('auth');
            const contentEncoding = (PushManager.supportedContentEncodings || ['aesgcm'])[0];

            return fetch('/scripts/notification-subscribe.php', {
                method: 'POST',
                body: JSON.stringify({
                    endpoint: subscription.endpoint,
                    publicKey: key ? btoa(String.fromCharCode.apply(null, new Uint8Array(key))) : null,
                    authToken: token ? btoa(String.fromCharCode.apply(null, new Uint8Array(token))) : null,
                    contentEncoding,
                    user: 1,
                }),
            }).then(() => subscription);
        }
}

Just modify this function hope pushSubscription with if block it works
1
ответ дан Siddharth Jain 17 August 2018 в 13:23
поделиться
  • 1
    Спасибо, это удалило консольную ошибку. Но вместо того, чтобы делать проверку в функции, я сделаю это, прежде чем вызывать функцию в службе // Register service. – Envayo 13 July 2018 в 09:15
Другие вопросы по тегам:

Похожие вопросы: