微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何处理来自除 service-worker 之外的其他 js 的推送通知?

如何解决如何处理来自除 service-worker 之外的其他 js 的推送通知?

是否可以处理来自除 service worker 之外的任何 js 的推送通知?如果是,如何?

我的情况:

我最近在我的项目中实现了网络推送通知(我遵循了这个 tuto from google)。

我的项目中有: index.html 、 index.js 和 service-worker

在我的 index.js 中,有时我将加载器显示为微调器。我想等到我从我的服务器收到推送通知,该通知会向我发送一个 ID。收到通知后,我想删除我的加载程序并在我的 index.js 中显示一个弹出窗口/对话框

怎么做?如何通知我的 index.js 我收到推送通知?除了 service-worker 之外,我们还可以在 index.js 中捕获推送通知吗?我们可以处理来自 index.js 的推送通知吗?

我的尝试: 我的服务人员:

self.addEventListener('push',function(event) {
    console.log('[Service Worker] Push Received.');
    console.log(`[Service Worker] Push had this data: "${event.data.text()}"`);

    if (event.data.text().toLowerCase().indexOf("id") >= 0) {
      displayDialog(event.data.text()); // HERE I tried to call a function from index.js,but not working
    }
  
    const title = 'My project';
    const options = {
      body: `${event.data.text()}`,icon: './images/logo/logo192.png',badge: './images/logo/logo192.png'
    };
  
    event.waitUntil(self.registration.showNotification(title,options));
});
  
self.addEventListener('notificationclick',function(event) {
    console.log('[Service Worker] Notification click Received.');
  
    event.notification.close();
  
    event.waitUntil(
      clients.openWindow('https://developers.google.com/web/')
    );
});

我的 index.js(没有我所有的代码,但在 index.js 中我也订阅或取消订阅推送通知):

function displayDialog(id) {
  $(."loader").hide(); // I remove the loader
  // Here I display my dialog and do other things
}
$(."loader").show(); // Now I have to wait that I receive a push notification from my server

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。