Javascript 角度服务人员:如何从路由到;通知单击“;事件

Javascript 角度服务人员:如何从路由到;通知单击“;事件,javascript,angular,service-worker,Javascript,Angular,Service Worker,我在代码中添加了一些推送通知,以便在执行操作时通知某人。我用C#中的lib.net.webpush 3.1.0和.net 4.5.2制作了后端。 到目前为止,通知系统运行良好,但有一点我无法成功: 在我的service worker文件(sw.js)中,使用Angular 9,我希望当有人收到通知时,当用户单击它时,他被重定向到发送通知的页面 首先,我让它像它一样(正如我在文件中读到的): 但我总是被重定向到“localhost://4200“而不是完整的url 为了测试,我做了以下几点: se

我在代码中添加了一些推送通知,以便在执行操作时通知某人。我用C#中的lib.net.webpush 3.1.0和.net 4.5.2制作了后端。 到目前为止,通知系统运行良好,但有一点我无法成功: 在我的service worker文件(sw.js)中,使用Angular 9,我希望当有人收到通知时,当用户单击它时,他被重定向到发送通知的页面

首先,我让它像它一样(正如我在文件中读到的):

但我总是被重定向到“localhost://4200“而不是完整的url

为了测试,我做了以下几点:

self.addEventListener('notificationclick', function (event) {
const urlToOpen = new URL(self.location.origin + "/#/rdc/rapports/2015");

event.notification.close();

event.waitUntil(clients.openWindow(urlToOpen));
});
它成功了。但我无法获取动态URL。 有人知道如何在这个文件中获取动态URL吗?或者如何重定向到发送通知的页面? 我在这里也试过类似的方法: 但我真的不明白。
谢谢。

我做得很成功。 因此,对于与我相同的人来说:在服务工作者中,您无法访问DOM,我无法在代码中获得任何ID或任何我试图瞄准的路径。 解决方案是,在我的C#代码中,向我的“SendNotification”函数添加一个“URL”属性和参数。然后,当我得到一个用户时,我可以将他的ID作为目标,因为它已经在这里了。 然后,在我的Angular代码(在service worker文件中)中,我必须这样做(我将我的url存储在这里的“数据”中):

然后,当我点击通知时,我被重定向到所需的URL

self.addEventListener('notificationclick', function (event) {
const urlToOpen = new URL(self.location.origin + "/#/rdc/rapports/2015");

event.notification.close();

event.waitUntil(clients.openWindow(urlToOpen));
});
self.addEventListener('notificationclick', function (event) {   console.log("notif click event", event);

    const urlToOpen = new URL(self.location.origin + event.notification.data);

    event.notification.close();

    event.waitUntil(clients.openWindow(urlToOpen)); });