安装本机应用程序时禁用移动 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 浏览器