小编dan*_*iel的帖子

单击service-worker ng7 + android处理的推送通知时打开PWA

我们在角度7和NodeJS上实现了PWA作为后端.推送通知从后端通过web-push发送,并由角度服务工作者服务处理.

我们希望Android中的行为是当用户点击通知时,应用程序在设备中打开(即PWA从后台出现并且对用户可见).

目前,代码接缝在后台执行,但PWA不是来自后台(即用户点击推送通知但没有任何反应).

推送通知由前端名为SwPush的角度服务处理,并使用角度应用程序的典型AppComponent组件中的以下代码传递给app:

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
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我搜索了整个SO网站,但没有找到这个问题.关于其他SO问题的评论,以避免往返其他SO答案的链接:

  • 我已经阅读了这个问题,在我的情况下,处理程序内的控制台日志执行没有问题
  • 另一个问题是建议在service-worker库中添加代码的解决方法,但据我所知,这是因为他们使用的是角度5而不是角度7(SwPush服务包含notificationclick处理程序).无论如何,我需要的是模拟这一行:

    event.waitUtil(clients.openWindow(URL));

当使用角度7的SwPush服务时,当用户点击推送通知时,如何打开PWA?

android push-notification progressive-web-apps angular angular7

18
推荐指数
3
解决办法
2690
查看次数