【发布时间】:2019-06-05 22:01:39
【问题描述】:
我们在 Angular 7 和 NodeJS 作为后端实现了 PWA。 推送通知通过web-push 从后端发送,并由angular service worker service 处理。
我们希望在 Android 中具有的行为是,当用户点击通知时,应用程序会在设备中打开(即 PWA 从后台出现并且对用户可见)。
目前,代码接缝在后台执行,但 PWA 没有从后台出现(即用户点击推送通知但没有任何反应)。
推送通知由前端名为 SwPush 的 Angular 服务处理,并使用 Angular 应用的典型 AppComponent 组件中的以下代码传递给应用:
export class AppComponent implements OnInit {
constructor(private swPush: SwPush) { }
ngOnInit(): void {
try {
if (this.swPush.isEnabled) {
this.swPush.notificationClicks.subscribe(
event => {
window.focus();
window.open(event.notification.data.url, '_self');
},
error => {
// handle error
}
);
}
} catch (err) {
// handle error
}
}
}
我在整个 SO 网站上进行了搜索,但没有准确找到这个问题。关于其他 SO 问题的评论,以避免往返链接到其他 SO 答案:
- 我已阅读this question,在我的情况下,处理程序内的控制台日志执行没有问题
-
this other question seams to 提出了一种在 service-worker 库中添加代码的解决方法,但据我了解,这是因为他们使用的是 angular 5 而不是 angular 7(其中 SwPush 服务包括 notificationclick 处理程序)。无论如何,我需要的是模拟这条线:
event.waitUtil(clients.openWindow(url));
关于在使用 Angular 7 的 SwPush 服务时用户点击推送通知时如何打开 PWA 的任何想法?
【问题讨论】:
标签: android angular push-notification progressive-web-apps angular7