我有一个使用 Angular 8 的 Ionic 5 PWA。我已经使用 swPush 完成了推送通知,它一直按预期工作到 3 月。但是,从上个月开始,由于其他一些变化,这停止了工作。我无法隔离问题。
swPush.isEnabled()
返回 false,即使服务工作进程已注册。关于 swPush 及其实现的代码没有任何变化。我尝试了这个未回答的链接,也没有帮助
当我使用推送通知API(使用PushManager(时,没有错误,一切正常,我正在获取订阅对象。这是 swPush 实现的问题,还是我的错误?
通知服务.ts
this.swPush.requestSubscription({
serverPublicKey: this.VAPIDPublicKey
})
.then((sub: PushSubscription) => {
const keys: SubscriptionObjectKeys = {
auth: sub.toJSON().keys.auth,
p256dh: sub.toJSON().keys.p256dh
};
const subscriptionObject: SubscriptionObject = {
endpoint: sub.endpoint,
expirationTime: 0,
keys: keys
};
resolve(subscriptionObject);
})
.catch(err => {
console.error('Could not subscribe to notifications', err);
reject(err);
});
铬中的错误
Error: Service workers are disabled or not supported by this browser
at e.requestSubscription (service-worker.js:391)
at notification.service.ts:123
at new D (zone-evergreen.js:960)
at t.<anonymous> (notification.service.ts:103)
at Generator.next (<anonymous>)
at tslib.es6.js:73
at new D (zone-evergreen.js:960)
at o (tslib.es6.js:69)
at t.subscribeToSWPush (common-es2015.ffedc7b115b497dcd514.js:1)
at t.<anonymous> (notification.service.ts:61)
我也在macOS和Windows 10中检查过这一点,使用HTTP Server和SSL。两者都显示出相同的问题。
我创建了一个新的 Ionic 应用程序并实现了相同的代码,该代码在那里运行良好。我无法隔离问题。
任何建议都会很有帮助。
我也得到了swPush.requestSubscription Error: Service workers are disabled or not supported by this browser...
.此外,swPush.isEnabled
返回 false。
我没有使用ng serve
因为我知道服务工作者不会在那里运行。我的 Angular PWA 正在使用 IIS 10、域名和 SSL(使用https
(在暂存服务器上运行。检查 chrome 调试(应用程序>服务工作进程(ngsw 工作线程.js#687 activated and is running
。我的PWA运行良好(就像我的Windows 10盒子上的桌面应用程序一样(,除了swPush问题。
我正在使用 Angular 11.2.7。你们解决了这个问题吗?