이것은 웹 푸시 모듈을 사용하여 알림을 보내는 내 server.js 코드입니다.푸시 알림이 크롬으로 전송되지 않습니다 (데스크톱 수준)
self.addEventListener('push', function (event) {
var payload = event.data ? event.data.text() : 'No Text Body';
console.log(payload,'payload');
event.waitUntil(
self.registration.showNotification('Notify Message', {
lang: 'la',
body: 'You have subscribed to Pushnotification.',
icon: 'https://pushover.net/images/icon-256.png',
requireInteraction: true
})
);
});
이를 :
endpoint = subscription.endpoint;
var rawKey = subscription.getKey ? subscription.getKey('p256dh') : '';
key = rawKey ? btoa(String.fromCharCode.apply(null, new Uint8Array(rawKey))) : '';
var rawAuthSecret = subscription.getKey ? subscription.getKey('auth') : '';
authSecret = rawAuthSecret ? btoa(String.fromCharCode.apply(null, new Uint8Array(rawAuthSecret))) : '';
이 알림을 수신하는 서비스 노동자 코드 :
exports.sendWelcomePushNotification = function (req, res) {
var details = {
endpoint: req.body.endpoint,
key: req.body.key,
secret: req.body.authSecret
}
webPush.sendNotification(details.endpoint, {TTL: 0, payload: 'You have subscribed to Pushnotification.', userPublicKey: details.key, userAuth: details.secret}).then(function() {
res.sendStatus(200).json({message: 'User successfully subscribed'});
});
};
이 브라우저 클라이언트 측 코드
는 인증 및 키 엔드 포인트를 캡처 코드는 firefox.ie에 대해 잘 작동합니다. 알림을 허용하면 API 요청이 전송되고 웹 푸시는 엔드 포인트에 푸시 알림을 보내고 환영 푸시 알림을받을 수있게됩니다. 그러나 크롬에서 같은 코드가 작동하지 않습니다. 즉; 어떤 오류도주지 않는 동시에 환영 푸시 알림을 제공하지 않습니다.누군가가 도와 줄 수 있습니까? 어떤 종류의 도움이라도 대단히 감사하겠습니다. 감사합니다. .
이가 자주 GCM API를 키 (매니페스트에 선언) 당신의 보낸 사람 ID 사이의 불일치로 인해 발생합니다. 이를 확인한 다음 브라우저에서 구독을 취소하고 다시 구독하여 알림을 푸십시오. – collimarco
프로젝트 번호를 보낸 사람 ID로, 서버 키를 GCM API 키로 지정했습니다. –
SW 기록을 보셨습니까? 크롬에 뭐라도 나니? – Jay