#javascript #angular #typescript #push-notification
Вопрос:
приложение.модуль.ts
ServiceWorkerModule.register('/ngsw-worker.js', { enabled: environment.production })
сервер.ts
let express = require('express');
let bodyParser = require('body-parser');
let cors = require('cors');
let webpush = require('web-push');
let app = express();
const vapidKeys = {
"publicKey": "BBgLZw6N1A1g9bWA8FmGtf8KLlgojlRZxB4vv9uM9ut6XE3pE2PcjdMrJdQ6K3GITuABgfL7R8szTwZQqelCVWs",
"privateKey": "kVm8Qkfy6w7anrC4Seh1sYURjRaPML1bsoh4lxuGvwg-MI"
};
webpush.setVapidDetails(
vapidKeys.publicKey,
vapidKeys.privateKey
);
app.use(bodyParser.json());
// REST API
// launch an HTTP Server
const httpServer: any = app.listen(9000, () => {
console.log("HTTP Server running at http://localhost:" httpServer.address().port);
});
книга.компонент.ts
sendNotification() {
this.swPush.requestSubscription({
serverPublicKey: this.VAPID_PUBLIC_KEY
})
.then(sub => {
console.log(sub)
})
.catch(err => console.error("Could not subscribe to notifications", err));
}
book.component.html
<div>
<button nz-button nzType="primary" [textContent]="'BAIT' | translate" (click)="sendNotification()"></button>
</div>
Как исправить ошибку не удалось подписаться на уведомления Ошибка: Работники службы отключены или не поддерживаются этим браузером
на SwPush.requestSubscription.
значение wspush.isenable
этого false
. причина, по которой значение производительности среды является ложным. значение по умолчанию environment.production false не должно изменяться на true.