【问题标题】:Progressive Web App Notification When Clearing Tasks/Killing App清除任务/杀死应用程序时的渐进式 Web 应用程序通知
【发布时间】:2018-01-04 06:23:06
【问题描述】:

我一直在尝试使用渐进式 Web 应用 (PWA) 并使用服务工作人员在手机(如 Galaxy s7/s8)上创建原生通知。

如果页面/PWA 已打开或在后台/任务中(超级流畅:D),一切都运行良好,但我注意到的一件事是,如果它通过任务管理器被杀死,则通知不再工作。

无论我是在浏览器中使用网络应用还是使用 PWA 功能将其添加到主页,似乎都是这种情况。

这是一个简单逻辑的 sn-p,以防万一:

        if (Notification.permission === 'granted') {
            navigator.serviceWorker.ready.then(function(serviceWorker) {
                serviceWorker.showNotification('You have new notifications!');
            });
        }

问题

1) 这是 PWA 的固有限制吗?

2) 是否有解决方法(比如自动启动应用)?

【问题讨论】:

    标签: android google-chrome notifications service-worker progressive-web-apps


    【解决方案1】:

    如果页面/PWA 已打开或在后台/任务中(超级流畅:D),一切都运行良好,但我注意到的一件事是,如果它通过任务管理器被杀死,则通知不再工作。

    我不敢苟同。我为公交车应用创建了 PWA,即使我终止了该应用,我仍然会收到通知。

    回答您的问题:

    1. iOS 是目前最大的限制。拥有 PWA 的想法是表现得像一个应用程序。拥有推送通知和离线缓存是推动 PWA 成功而不是构建应用程序的原因之一。
    2. 没有自动启动之类的东西。如果用户已经登陆页面并且软件已经正确安装,那么它已经在后台“监听”了。

    【讨论】:

    • 那么,你能分享一些代码吗?正如我所提到的,当我终止进程/应用程序时,我的服务人员似乎没有发送通知。您明确杀死了您的应用程序并且通知仍然有效?您是否将 PUSH API 与通知结合使用?如果是这样,那可能就是你的工作的原因。
    • 我建立了(这个)[cbrbuses.firebaseapp.com/].请按照以下步骤操作,以便您收到通知:1);输入 3409; 2) 单击任何一个框。它会带你去地图; 3) 找到蓝色别针。单击蓝色大头针指向的 B 圆。你会看到一个烤面包机,上面写着它会通知你。 4) 关闭应用程序/浏览器并等待 :) 请注意,您必须注意 B 引脚的位置以及它与蓝色引脚的距离,否则您将不得不等待很长时间。
    • 您还没有回答我的问题 - 除了通知 API 之外,您还使用 PUSH API 吗?另外,我希望能够接受并支持您的回答,但我想看看几件事。 1) 答案 #2 和 2) 的一些重要代码片段的参考
    • 道歉。我错过了那部分。也以条款为基础,我可能会把它弄混。我在服务人员中使用self.addEventListener('push', function (event) { ... } 来接收从服务器推送的通知。我的服务器在 expressJS 中运行,带有一个名为 web-push 的 NPM 模块。 webPush.sendNotification(pushSubscriptions, payload, options) 是将通知发送到用户端点的代码行
    猜你喜欢
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    • 1970-01-01
    • 2013-09-19
    • 2018-12-20
    • 1970-01-01
    相关资源
    最近更新 更多