安装本机应用程序时禁用移动 Web 浏览器通知

Posted

技术标签:

【中文标题】安装本机应用程序时禁用移动 Web 浏览器通知【英文标题】:Disabling mobile web browser notifications when native app is installed 【发布时间】:2017-03-21 17:54:28 【问题描述】:

我刚开始指定一个项目来实现浏览器通知。从高层次来看,它似乎类似于:

创建订阅 pubsub 主题的 service worker。 当事件发生且窗口处于非前台状态时,利用 Notifications API 和 WindowClient 发布浏览器通知。

看起来,很简单。但是,从移动的角度来看,我有点挂了。也就是说,如果移动设备同时打开了移动网站并安装了应用程序,这似乎是典型的模式,本机通知应该优先,浏览器通知应该被静音。

但是,我似乎无法弄清楚服务人员将如何检查移动应用程序的存在。不过,我完全有可能从错误的角度来处理这个问题,并且典型的解决方法是不同的。

【问题讨论】:

【参考方案1】:

Brent,IIUC,您的问题不是问题,因为W3C Push API 或IETF webpush protocol 根本不支持基于主题的订阅。恐怕这是设计使然:-(

因此,您的原生应用将不会传递与您的浏览器 UA 相同的广播消息。

如果 OTOH 您在谈论保存到主屏幕的 WebApp 和在选项卡中运行的网页,那么我相信,您的服务人员可以选择将活动客户端集合的哪个成员放在前台(如果需要),但会有仅是一条祝酒消息(如果有管理盲/不可见通知的所有给定规则)

【讨论】:

如果您对GCM/FCM 感到满意,至少还有另一个选择,这非常令人兴奋!

以上是关于安装本机应用程序时禁用移动 Web 浏览器通知的主要内容,如果未能解决你的问题,请参考以下文章

ios:当应用程序处于焦点时禁用警报通知(OneSignal)

使用浏览器包装器将现有的 Web 应用程序移动到本机手机应用程序中

我如何从 laravel api 推送通知以响应本机应用程序?

是否有一个通知平台同时支持带有 Xamarin 的移动应用程序和带有 Javascript 的 Web 浏览器

在 iOS 设置中更改通知时,Amazon SNS 如何禁用/重新启用设备?

如何从 Web 应用程序向移动应用程序发送通知给特定用户