【问题标题】:PWA push notifications not working when app is not installed未安装应用程序时 PWA 推送通知不起作用
【发布时间】:2020-02-23 13:20:39
【问题描述】:

推送通知是否应该仅在安装了 PWA 时才起作用? 如果我在 android chrome 浏览器中加载应用程序,则根本不会显示推送通知(背景或打开网站),即使它们是通过网络发送的。

如果我安装该应用,所有通知都会正确显示(背景或焦点应用)。

这是正常的行为还是实现中的错误?

【问题讨论】:

    标签: javascript google-chrome push-notification progressive-web-apps


    【解决方案1】:

    这符合预期。

    服务工作线程在与您的应用程序使用的线程不同的线程上运行。这就是即使您(或您的用户)当前没有访问该网站,您的网络应用仍然可以接收和显示通知的原因。

    因此,如果未安装 PWA(意味着 SW 未在客户端运行),则没有代码等待传入的通知。

    I wrote an article about service workers,如果您想深入了解 PWA 主题。


    更新

    • 有一个article specifically from OneSignal关于在Android上没有收到推送通知,也许你可以找到一些提示。如果您查看 OneSignal 仪表板,您能看到您的客户在那里注册吗?

    • [这一点适用于其他登陆该问题的用户]
      如果您的浏览器未显示网络通知,您可以在“我可以使用”网站上验证您的浏览器版本支持notificationspush API并最终更新。

    【讨论】:

    • 即使打开浏览器、加载页面并聚焦浏览器,Android chrome 上也不会显示通知。这正常吗?
    • 如果您在桌面上测试应用程序,您可以使用 Chrome Dev Tools > Application Tab > Service Workers Item。在这里您可以检查软件是否已安装并正在运行,您可以使用“推送”输入字段测试推送通知。该字段接受一个通知对象。但是,如果没有 SW 处于活动状态且正在运行,则此字段不可用。如果您没有软件,则无法在本地测试推送通知(即使浏览器打开并处于焦点位置)。
    • 但我确实在 android chrome 上启动并运行了 SW,但除非我安装应用程序,否则不会显示通知。
    • 我对所有事情都使用 OneSignal,并且消息是从他们的 UI 发送的。只是想知道这是正常行为还是我的实现有问题。如果这不是预期的行为,那么我将进一步调查我的实现,但似乎没有人可以直接回答这个问题......
    • 我以前读过那篇文章,但找不到解决方案。我只是想知道这是否是正常行为。我正在处理的案例非常具体,所以我想比我更有经验的人可以确认或不确认。这是我第一次实现这样的事情,很难知道哪个是预期的行为。
    猜你喜欢
    • 1970-01-01
    • 2022-10-24
    • 2019-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-10
    • 2022-01-13
    相关资源
    最近更新 更多